summaryrefslogtreecommitdiff
path: root/data/extensions/jid1-KtlZuoiikVfFew@jetpack/node_modules/pathfinder/lib/connection
diff options
context:
space:
mode:
Diffstat (limited to 'data/extensions/jid1-KtlZuoiikVfFew@jetpack/node_modules/pathfinder/lib/connection')
-rw-r--r--data/extensions/jid1-KtlZuoiikVfFew@jetpack/node_modules/pathfinder/lib/connection/events.js23
-rw-r--r--data/extensions/jid1-KtlZuoiikVfFew@jetpack/node_modules/pathfinder/lib/connection/request.js45
-rw-r--r--data/extensions/jid1-KtlZuoiikVfFew@jetpack/node_modules/pathfinder/lib/connection/response.js44
3 files changed, 112 insertions, 0 deletions
diff --git a/data/extensions/jid1-KtlZuoiikVfFew@jetpack/node_modules/pathfinder/lib/connection/events.js b/data/extensions/jid1-KtlZuoiikVfFew@jetpack/node_modules/pathfinder/lib/connection/events.js
new file mode 100644
index 0000000..7d9071b
--- /dev/null
+++ b/data/extensions/jid1-KtlZuoiikVfFew@jetpack/node_modules/pathfinder/lib/connection/events.js
@@ -0,0 +1,23 @@
+/* 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 events = require('sdk/system/events');
+const { on, once, off, emit } = require('sdk/event/core');
+
+function onRequest(evt) {
+ emit(exports, 'modify-request', evt);
+}
+events.on('http-on-modify-request', onRequest);
+
+/*
+function onResponse(evt) {
+ emit(exports, 'examine-response', evt);
+}
+events.on('http-on-examine-response', onResponse);
+*/
+
+exports.on = on.bind(null, exports);
+exports.once = once.bind(null, exports);
+exports.off = off.bind(null, exports);
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
diff --git a/data/extensions/jid1-KtlZuoiikVfFew@jetpack/node_modules/pathfinder/lib/connection/response.js b/data/extensions/jid1-KtlZuoiikVfFew@jetpack/node_modules/pathfinder/lib/connection/response.js
new file mode 100644
index 0000000..c0ed791
--- /dev/null
+++ b/data/extensions/jid1-KtlZuoiikVfFew@jetpack/node_modules/pathfinder/lib/connection/response.js
@@ -0,0 +1,44 @@
+/* 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 events = require('./events');
+
+const RESPONSE_RULES = List();
+
+const requestNS = ns();
+
+function onResponse(evt) {
+ for each (let rule in RESPONSE_RULES) {
+ applyResponseHeaders(rule, evt)
+ }
+}
+events.on('examine-response', onResponse);
+
+const ResponseRule = Class({
+ initialize: function(details) {
+ requestNS(this).details = details;
+ addListItem(RESPONSE_RULES, this);
+ },
+ destroy: function() {
+ removeListItem(RESPONSE_RULES, this);
+ }
+});
+exports.ResponseRule = ResponseRule;
+
+function applyResponseHeaders(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.setResponseHeader(key, rules[key], false);
+ }
+} \ No newline at end of file