mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-12-14 10:43:24 +00:00
44 lines
1.5 KiB
JavaScript
44 lines
1.5 KiB
JavaScript
/* -*- 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]);
|