blob: 865f2a6b49db84e5ecba6dc383b737fbd9eafa7c (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
* You can obtain one at http://mozilla.org/MPL/2.0/. */
'use strict';
const { classes: Cc, interfaces: Ci, utils: Cu } = Components;
Cu.import("resource://gre/modules/XPCOMUtils.jsm");
const WELLKNOWNOPPORTUNISTICUTILS_CONTRACTID = "@mozilla.org/network/well-known-opportunistic-utils;1";
const WELLKNOWNOPPORTUNISTICUTILS_CID = Components.ID("{b4f96c89-5238-450c-8bda-e12c26f1d150}");
function WellKnownOpportunisticUtils() {
this.valid = false;
this.mixed = false;
this.lifetime = 0;
}
WellKnownOpportunisticUtils.prototype = {
classID: WELLKNOWNOPPORTUNISTICUTILS_CID,
contractID: WELLKNOWNOPPORTUNISTICUTILS_CONTRACTID,
classDescription: "Well-Known Opportunistic Utils",
QueryInterface: XPCOMUtils.generateQI([Ci.nsIWellKnownOpportunisticUtils]),
verify: function(aJSON, aOrigin, aAlternatePort) {
try {
let obj = JSON.parse(aJSON.toLowerCase());
let ports = obj[aOrigin.toLowerCase()]['tls-ports'];
if (ports.indexOf(aAlternatePort) == -1) {
throw "invalid port";
}
this.lifetime = obj[aOrigin.toLowerCase()]['lifetime'];
this.mixed = obj[aOrigin.toLowerCase()]['mixed-scheme'];
} catch (e) {
return;
}
this.valid = true;
},
};
this.NSGetFactory = XPCOMUtils.generateNSGetFactory([WellKnownOpportunisticUtils]);
|