summaryrefslogtreecommitdiff
path: root/data/extensions/jid1-KtlZuoiikVfFew@jetpack/node_modules/pathfinder/lib/connection/request.js
diff options
context:
space:
mode:
Diffstat (limited to 'data/extensions/jid1-KtlZuoiikVfFew@jetpack/node_modules/pathfinder/lib/connection/request.js')
-rw-r--r--data/extensions/jid1-KtlZuoiikVfFew@jetpack/node_modules/pathfinder/lib/connection/request.js45
1 files changed, 45 insertions, 0 deletions
diff --git a/data/extensions/jid1-KtlZuoiikVfFew@jetpack/node_modules/pathfinder/lib/connection/request.js b/data/extensions/jid1-KtlZuoiikVfFew@jetpack/node_modules/pathfinder/lib/connection/request.js
new file mode 100644
index 0000000..bf93ca0
--- /dev/null
+++ b/data/extensions/jid1-KtlZuoiikVfFew@jetpack/node_modules/pathfinder/lib/connection/request.js
@@ -0,0 +1,45 @@
+/* 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 { Ci } = require('chrome');
+const { List, addListItem, removeListItem } = require('sdk/util/list');
+const { ns } = require('sdk/core/namespace');
+const { Class } = require('sdk/core/heritage');
+const { Disposable } = require('sdk/core/disposable');
+
+const events = require('./events');
+
+const REQUEST_RULES = List();
+const requestNS = ns();
+
+function onRequest(evt) {
+ for each (let rule in REQUEST_RULES) {
+ applyRequestHeaders(rule, evt)
+ }
+}
+events.on('modify-request', onRequest);
+
+const RequestRule = Class({
+ implements: [ Disposable ],
+ initialize: function(details) {
+ requestNS(this).details = details;
+ addListItem(REQUEST_RULES, this);
+ },
+ dispose: function() {
+ removeListItem(REQUEST_RULES, this);
+ }
+});
+exports.RequestRule = RequestRule;
+
+function applyRequestHeaders(rule, evt) {
+ let channel = evt.subject.QueryInterface(Ci.nsIHttpChannel);
+ let requestURL = channel.URI.spec
+
+ let details = requestNS(rule).details;
+ let { headers: rules } = details;
+ for each (let key in Object.keys(rules)) {
+ channel.setRequestHeader(key, rules[key] + '', false);
+ }
+} \ No newline at end of file