diff options
author | Ehsan Akhgari <ehsan@mozilla.com> | 2010-05-31 00:59:00 -0400 |
---|---|---|
committer | Ehsan Akhgari <ehsan@mozilla.com> | 2010-05-31 00:59:00 -0400 |
commit | ced6558b039bd1369715f94fc4cf902076082389 (patch) | |
tree | f07760ba4f3fe6262167ec61a9301bf2ca6d6483 | |
parent | b94aade3d4867c5a2a9aa3948ff54b671c31d570 (diff) | |
download | bugzilla-triage-ced6558b039bd1369715f94fc4cf902076082389.tar.gz |
Don't pass cookie XPCOM objects across package boundaries
-rw-r--r-- | lib/cookiemanager.js | 14 | ||||
-rw-r--r-- | lib/main.js | 5 |
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; |