diff options
Diffstat (limited to 'data/extensions/https-everywhere-eff@eff.org/chrome/content/code/Cookie.js')
-rw-r--r-- | data/extensions/https-everywhere-eff@eff.org/chrome/content/code/Cookie.js | 150 |
1 files changed, 0 insertions, 150 deletions
diff --git a/data/extensions/https-everywhere-eff@eff.org/chrome/content/code/Cookie.js b/data/extensions/https-everywhere-eff@eff.org/chrome/content/code/Cookie.js deleted file mode 100644 index 80b3e50..0000000 --- a/data/extensions/https-everywhere-eff@eff.org/chrome/content/code/Cookie.js +++ /dev/null @@ -1,150 +0,0 @@ -Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); - -function Cookie(s, host) { - this.parse(s, host); -} -Cookie.computeId = function(c) { - return c.name + ";" + c.host + "/" + c.path; -}; -Cookie.find = function(f) { - var cc = Cookie.prototype.cookieManager.enumerator; - var c; - while (cc.hasMoreElements()) { - if (f(c = cc.getNext())) return c; - } - return null; -}; - -Cookie.attributes = { host: 'domain', path: 'path', expires: 'expires', isHttpOnly: 'HttpOnly', isSecure: 'Secure' }; -Cookie.prototype = { - - name: '', - value: '', - source: '', - domain: '', - host: '', - rawHost: '', - path: '', - secure: false, - httponly: false, - session: true, - expires: 0, - - id: '', - - - toString: function() { - var c = [this['name'] + "=" + this.value]; - var v; - const aa = Cookie.attributes; - for (var k in aa) { - var p = aa[k]; - v = this[k]; - switch(typeof(v)) { - case "string": - if (v) c.push(p + "=" + v); - break; - case "boolean": - if (v) c.push(p); - break; - case "number": - if (!this.isSession) c.push(p + "=" + new Date(v * 1000).toUTCString()); - break; - } - } - return c.join("; "); - }, - parse: function(s, host) { - var p; - if (this.source) { - // cleanup for recycle - for (p in this) { - if (typeof (p) != "function") delete this[p]; - } - } - this.source = s; - this.host = host; - - var parts = s.split(/;\s*/); - var nv = parts.shift().split("="); - - this.name = nv.shift() || ''; - this.value = nv.join('=') || ''; - - var n, v; - for (p of parts) { - nv = p.split("="); - switch (n = nv[0].toLowerCase()) { - case 'expires': - v = Math.round(Date.parse((nv[1] || '').replace(/\-/g, ' ')) / 1000); - break; - case 'domain': - case 'path': - v = nv[1] || ''; - break; - case 'secure': - case 'httponly': - v = true; - break; - default: - n = 'unknown'; - } - this[n] = v; - } - if (!this.expires) { - this.session = true; - this.expires = Math.round(new Date() / 1000) + 31536000; - } - if (this.domain) { - if (!this.isDomain) this.domain = "." + this.domain; - this.host = this.domain; - } - this.rawHost = this.host.replace(/^\./, ''); - - this.id = Cookie.computeId(this); - }, - - - get cookieManager() { - delete Cookie.prototype.cookieManager; - var cman = Cc["@mozilla.org/cookiemanager;1"] - .getService(Ci.nsICookieManager2).QueryInterface(Ci.nsICookieManager); - return Cookie.prototype.cookieManager = cman; - }, - belongsTo: function(host, path) { - if (path && this.path && path.indexOf(this.path) != 0) return false; - if (host == this.rawHost) return true; - var d = this.domain; - return d && (host == d || this.isDomain && host.slice(-d.length) == d); - }, - save: function() { - this.save = ("cookieExists" in this.cookieManager) - ? function() { this.cookieManager.add(this.host, this.path, this.name, this.value, this.secure, this.httponly, this.session, this.expires); } - : function() { this.cookieManager.add(this.host, this.path, this.name, this.value, this.secure, this.session, this.expires);} - ; - return this.save(); - }, - exists: function() { - var cc = this.cookieManager.enumerator; - while(cc.hasMoreElements()) { - if (this.sameAs(cc.getNext())) return true; - } - return false; - }, - - sameAs: function(c) { - (c instanceof Ci.nsICookie) && (c instanceof Ci.nsICookie2); - return Cookie.computeId(c) == this.id; - }, - - // nsICookie2 interface extras - get isSecure() { return this.secure; }, - get expiry() { return this.expires; }, - get isSession() { return this.session; }, - get isHttpOnly() { return this.httponly; }, - get isDomain() { return this.domain && this.domain[0] == '.'; }, - policy: 0, - status: 0, - QueryInterface: XPCOMUtils.generateQI([Ci.nsICookie, Ci.nsICookie2]) - -}; |