Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • Synzvato/decentraleyes
  • gkrishnaks/decentraleyes
  • ExE-Boss/decentraleyes
  • whtsky/decentraleyes
  • grtgarrett/decentraleyes
  • An_dz/decentraleyes
  • Alaska/decentraleyes
  • finn/decentraleyes
  • klippy/decentraleyes
9 results
Show changes
'use strict';
/**
* Imports
*/
var requestAnalyzer = require("../lib/request-analyzer");
var requestAnalyzer = require('../lib/request-analyzer');
/**
* Variables
*/
var localPaths = {
angular: 'resources/angularjs/1.2.19/angular.min.js.dec',
backbone: [
'angular': 'resources/angularjs/1.2.19/angular.min.js.dec',
'backbone': [
'resources/backbone.js/0.9.2/backbone-min.js.dec',
'resources/backbone.js/1.1.2/backbone-min.js.dec'
],
dojo: 'resources/dojo/1.8.3/dojo/dojo.js.dec',
ember: [
'dojo': 'resources/dojo/1.8.3/dojo/dojo.js.dec',
'ember': [
'resources/ember.js/1.1.0/ember.min.js.dec',
'resources/ember.js/2.1.0/ember.min.js.dec'
],
extCore: 'resources/ext-core/3.1.0/ext-core.js.dec',
jQuery: [
'extCore': 'resources/ext-core/3.1.0/ext-core.js.dec',
'jQuery': [
'resources/jquery/1.10.2/jquery.min.js.dec',
'resources/jquery/1.11.1/jquery.min.js.dec'
],
jQueryUI: 'resources/jqueryui/1.10.2/jquery-ui.min.js.dec',
modernizr: 'resources/modernizr/2.6.2/modernizr.min.js.dec',
mootools: 'resources/mootools/1.4.5/mootools-yui-compressed.js.dec',
prototypeJS: 'resources/prototype/1.6.1.0/prototype.js.dec',
scriptaculous: 'resources/scriptaculous/1.9.0/scriptaculous.js.dec',
swfobject: 'resources/swfobject/2.2/swfobject.js.dec',
underscore: [
'jQueryUI': 'resources/jqueryui/1.10.2/jquery-ui.min.js.dec',
'modernizr': 'resources/modernizr/2.6.2/modernizr.min.js.dec',
'mootools': 'resources/mootools/1.4.5/mootools-yui-compressed.js.dec',
'prototypeJS': 'resources/prototype/1.6.1.0/prototype.js.dec',
'scriptaculous': 'resources/scriptaculous/1.9.0/scriptaculous.js.dec',
'swfobject': 'resources/swfobject/2.2/swfobject.js.dec',
'underscore': [
'resources/underscore.js/1.3.3/underscore-min.js.dec',
'resources/underscore.js/1.4.4/underscore-min.js.dec',
'resources/underscore.js/1.6.0/underscore-min.js.dec'
],
webfont: [
'webfont': [
'resources/webfont/1.0.19/webfont.js.dec',
'resources/webfont/1.5.18/webfont.js.dec'
]
};
/**
* Private Methods
*/
function _setRequestHeader () {
return false;
}
function _schemeIs () {
return 'https';
}
/**
* Is Valid Candidate Tests
*/
......@@ -48,7 +62,8 @@ var localPaths = {
exports['test get request to known cdn'] = function (assert) {
var result = requestAnalyzer.isValidCandidate({
requestMethod: 'GET', URI: { host: 'ajax.googleapis.com' }
'requestMethod': 'GET', 'URI': {'host': 'ajax.googleapis.com', 'schemeIs': _schemeIs}
});
assert.ok(result, 'Valid candidate was successfully identified.');
......@@ -57,7 +72,8 @@ exports['test get request to known cdn'] = function (assert) {
exports['test post request to known cdn'] = function (assert) {
var result = requestAnalyzer.isValidCandidate({
requestMethod: 'POST', URI: { host: 'ajax.googleapis.com' }
'requestMethod': 'POST', 'URI': {'host': 'ajax.googleapis.com', 'schemeIs': _schemeIs}
});
assert.equal(result, false, 'Invalid candidate was successfully identified.');
......@@ -66,7 +82,7 @@ exports['test post request to known cdn'] = function (assert) {
exports['test get request to unknown domain'] = function (assert) {
var result = requestAnalyzer.isValidCandidate({
requestMethod: 'GET', URI: { host: 'ajax.example.com' }
'requestMethod': 'GET', 'URI': {'host': 'ajax.example.com', 'schemeIs': _schemeIs}
});
assert.equal(result, false, 'Invalid candidate was successfully identified.');
......@@ -74,11 +90,16 @@ exports['test get request to unknown domain'] = function (assert) {
exports['test get request from whitelisted domain'] = function (assert) {
require('sdk/simple-prefs').prefs.domainWhitelist = 'example.com';
var result, simplePreferences;
var result = requestAnalyzer.isValidCandidate({
requestMethod: 'GET', URI: { host: 'ajax.googleapis.com' },
referrer: { host: 'example.com' }, setRequestHeader: function () { return false; }
simplePreferences = require('sdk/simple-prefs');
simplePreferences.prefs.domainWhitelist = 'example.com';
result = requestAnalyzer.isValidCandidate({
'requestMethod': 'GET', 'URI': {'host': 'ajax.googleapis.com', 'schemeIs': _schemeIs},
'referrer': {'host': 'example.com', 'schemeIs': _schemeIs},
'setRequestHeader': _setRequestHeader
});
assert.equal(result, false, 'Whitelisted request was successfully ignored.');
......@@ -625,4 +646,4 @@ exports['test mootools on upyun library'] = function (assert) {
* Run Tests
*/
require("sdk/test").run(exports);
require('sdk/test').run(exports);
/**
* Embedded WebExtension - Background Script
* Belongs to Decentraleyes.
*
* @author Thomas Rientjes
* @since 2017-08-18
* @license MPL 2.0
*
* 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';
/**
* Variables
*/
var webextensionPort = {};
var amountInjected = null;
var pendingCount = 0;
/**
* Initializations
*/
webextensionPort = browser.runtime.connect({name: 'webextension'});
/**
* Event Handlers
*/
webextensionPort.onMessage.addListener((message) => {
if (message.subject === 'migrate-preferences') {
browser.storage.local.get(function (items) {
// Covers storage API failures.
if (items === null) {
return;
}
for (let preference of Object.keys(message.content)) {
// Makes sure no existing preferences are overwritten.
if (!items.hasOwnProperty(preference)) {
browser.storage.local.set({
[preference]: message.content[preference]
});
}
}
});
}
if (message.subject === 'register-injection') {
if (amountInjected !== null && !isNaN(amountInjected)) {
++amountInjected;
browser.storage.local.set({amountInjected});
}
++pendingCount;
if (pendingCount > 1) {
return;
}
chrome.storage.local.get({
// The stored amount, or zero.
'amountInjected': 0
}, function (items) {
// Accounts for the fact that the storage API is asynchronous.
amountInjected = (items && items.amountInjected || 0) + pendingCount;
browser.storage.local.set({amountInjected});
});
}
if (message.subject === 'update-preferences') {
chrome.storage.local.set(message.content);
}
});
{
"manifest_version": 2,
"name": "Decentraleyes Module",
"version": "1.4.2",
"author": "Thomas Rientjes",
"background": {
"scripts": [
"background.js"
]
},
"permissions": [
"storage"
]
}