diff options
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.js | 45 |
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 |