aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEhsan Akhgari <ehsan@mozilla.com>2010-05-31 00:59:00 -0400
committerEhsan Akhgari <ehsan@mozilla.com>2010-05-31 00:59:00 -0400
commitced6558b039bd1369715f94fc4cf902076082389 (patch)
treef07760ba4f3fe6262167ec61a9301bf2ca6d6483
parentb94aade3d4867c5a2a9aa3948ff54b671c31d570 (diff)
downloadbugzilla-triage-ced6558b039bd1369715f94fc4cf902076082389.tar.gz
Don't pass cookie XPCOM objects across package boundaries
-rw-r--r--lib/cookiemanager.js14
-rw-r--r--lib/main.js5
2 files changed, 15 insertions, 4 deletions
diff --git a/lib/cookiemanager.js b/lib/cookiemanager.js
index 5b9df5c..047b988 100644
--- a/lib/cookiemanager.js
+++ b/lib/cookiemanager.js
@@ -37,6 +37,18 @@
exports.getHostCookies = function getHostCookies(host) {
var cm = Cc["@mozilla.org/cookiemanager;1"].
getService(Ci.nsICookieManager2);
- return cm.getCookiesFromHost(host);
+ var e = cm.getCookiesFromHost(host);
+ var result = [];
+ while (e.hasMoreElements()) {
+ var cookie = e.getNext();
+ cookie.QueryInterface(Ci.nsICookie2);
+ if (cookie.rawHost == host) {
+ result.push({
+ name: cookie.name,
+ value: cookie.value,
+ });
+ }
+ }
+ return result;
}
diff --git a/lib/main.js b/lib/main.js
index 694e3d0..8b4181a 100644
--- a/lib/main.js
+++ b/lib/main.js
@@ -1040,9 +1040,8 @@ function autoCompleteUser(doc, field, multiple) {
var bzCookies = require("cookiemanager").getHostCookies("bugzilla.mozilla.org");
var loginID = null, auth = null;
- while (bzCookies.hasMoreElements()) {
- var cookie = bzCookies.getNext();
- cookie.QueryInterface(Components.interfaces.nsICookie);
+ for (var i = 0; i < bzCookies.length; ++i) {
+ var cookie = bzCookies[i];
switch (cookie.name) {
case "Bugzilla_login":
loginID = cookie.value;