summaryrefslogtreecommitdiffstats
path: root/netwerk/protocol/http/WellKnownOpportunisticUtils.js
diff options
context:
space:
mode:
Diffstat (limited to 'netwerk/protocol/http/WellKnownOpportunisticUtils.js')
-rw-r--r--netwerk/protocol/http/WellKnownOpportunisticUtils.js43
1 files changed, 43 insertions, 0 deletions
diff --git a/netwerk/protocol/http/WellKnownOpportunisticUtils.js b/netwerk/protocol/http/WellKnownOpportunisticUtils.js
new file mode 100644
index 000000000..865f2a6b4
--- /dev/null
+++ b/netwerk/protocol/http/WellKnownOpportunisticUtils.js
@@ -0,0 +1,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]);