From 1aecd18e5cc9d8b9dfd4063e749ce61eb0077e2a Mon Sep 17 00:00:00 2001 From: Ruben Rodriguez Date: Mon, 21 Nov 2016 14:41:08 -0500 Subject: https-everywhere updated to 5.2.7 --- .../chrome/content/code/HTTPSRules.js | 33 +++++++++++++++++++--- 1 file changed, 29 insertions(+), 4 deletions(-) (limited to 'data/extensions/https-everywhere-eff@eff.org/chrome/content/code/HTTPSRules.js') diff --git a/data/extensions/https-everywhere-eff@eff.org/chrome/content/code/HTTPSRules.js b/data/extensions/https-everywhere-eff@eff.org/chrome/content/code/HTTPSRules.js index 78536de..b3818bf 100644 --- a/data/extensions/https-everywhere-eff@eff.org/chrome/content/code/HTTPSRules.js +++ b/data/extensions/https-everywhere-eff@eff.org/chrome/content/code/HTTPSRules.js @@ -246,7 +246,31 @@ const RuleWriter = { return rv; }, - read: function(file) { + readFromUrl: function (url) { + var ios = CC['@mozilla.org/network/io-service;1'] + .getService(CI.nsIIOService); + var encoding = "UTF-8"; + var channel = ios.newChannel(url, encoding, null); + var stream = channel.open(); + var streamSize = stream.available(); + + if (!streamSize) { + return null; + } + + var convStream = CC["@mozilla.org/intl/converter-input-stream;1"] + .createInstance(CI.nsIConverterInputStream); + + convStream.init(stream, encoding, streamSize, + convStream.DEFAULT_REPLACEMENT_CHARACTER); + + var data = {}; + convStream.readString(streamSize, data); + + return data.value; + }, + + readFromFile: function(file) { if (!file.exists()) return null; var data = ""; @@ -285,7 +309,7 @@ const RuleWriter = { rulesetFromFile: function(file, rule_store, ruleset_id) { if ((rule_store.targets == null) && (rule_store.targets != {})) this.log(WARN, "TARGETS IS NULL"); - var data = this.read(file); + var data = this.readFromFile(file); if (!data) return null; return this.readFromString(data, rule_store, ruleset_id); }, @@ -409,8 +433,9 @@ const HTTPSRules = { * XML string, which will be parsed on an as-needed basis. */ loadTargets: function() { - var file = new FileUtils.File(RuleWriter.chromeToPath("chrome://https-everywhere/content/rulesets.json")); - var rules = JSON.parse(RuleWriter.read(file)); + var loc = "chrome://https-everywhere/content/rulesets.json"; + var data = RuleWriter.readFromUrl(loc); + var rules = JSON.parse(data); this.targets = rules.targets; this.rulesetStrings = rules.rulesetStrings; }, -- cgit v1.2.3