summaryrefslogtreecommitdiff
path: root/data/extensions/jid1-KtlZuoiikVfFew@jetpack/resources/librejs/lib/parser
diff options
context:
space:
mode:
authorRuben Rodriguez <ruben@gnu.org>2015-01-28 22:16:14 +0100
committerRuben Rodriguez <ruben@gnu.org>2015-01-28 22:16:14 +0100
commit16f2defa530b36cae7da5e28b5eafef9138adba5 (patch)
treec1415ef31bf1e96da1674aec2fc2c580c87d9e08 /data/extensions/jid1-KtlZuoiikVfFew@jetpack/resources/librejs/lib/parser
parent763c090c20c60c13f9b6f50b953323a237fd778a (diff)
Updated to v31.4.0ESR
* Search form in about:icecat now searches in default search engine * Disabled accessibility.blockautorefresh * Replaced references to Open Source with Free Software where applicable * Added html5-video-everywhere v0.1.1 extension: https://github.com/lejenome/html5-video-everywhere * Updated LibreJS to 6.0.8 Build scripts updated to use pbuilder
Diffstat (limited to 'data/extensions/jid1-KtlZuoiikVfFew@jetpack/resources/librejs/lib/parser')
-rw-r--r--data/extensions/jid1-KtlZuoiikVfFew@jetpack/resources/librejs/lib/parser/narcissus_worker.js81
1 files changed, 81 insertions, 0 deletions
diff --git a/data/extensions/jid1-KtlZuoiikVfFew@jetpack/resources/librejs/lib/parser/narcissus_worker.js b/data/extensions/jid1-KtlZuoiikVfFew@jetpack/resources/librejs/lib/parser/narcissus_worker.js
new file mode 100644
index 0000000..a25e279
--- /dev/null
+++ b/data/extensions/jid1-KtlZuoiikVfFew@jetpack/resources/librejs/lib/parser/narcissus_worker.js
@@ -0,0 +1,81 @@
+/**
+ * GNU LibreJS - A browser add-on to block nonfree nontrivial JavaScript.
+ * *
+ * Copyright (C) 2011, 2012, 2013, 2014 Loic J. Duros
+ * Copyright (C) 2014, 2015 Nik Nyby
+ *
+ * This file is part of GNU LibreJS.
+ *
+ * GNU LibreJS is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * GNU LibreJS is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with GNU LibreJS. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+var data = require("sdk/self").data;
+var {Cu} = require("chrome");
+var {ChromeWorker} = Cu.import("resource://gre/modules/Services.jsm", null);
+var worker = new ChromeWorker(
+ data.url("chrome_worker/parser/parse.js"));
+
+var NarcissusWorker = function() {
+ this.worker = worker;
+ var that = this;
+
+ this.worker.onmessage = function(e) {
+ var jsChecker = require("js_checker/js_checker");
+
+ console.debug('onmessage', e.data.hash);
+ try {
+ console.debug('calling jsChecker.callbackHashResult() for hash:',
+ e.data.hash);
+ jsChecker.callbackHashResult(e.data.hash, e.data.tree);
+ } catch (x) {
+ console.debug('error on message', x);
+ jsChecker.callbackHashResult(e.data.hash, false);
+ }
+ jsChecker = null;
+ };
+
+ // Enabling the catch clause in data/chrome_worker/parser
+ // instead of here because we can get the hash from there.
+ /*this.worker.onerror = function (e) {
+ console.debug(
+ 'error', e.lineno,
+ 'in', e.filename,
+ 'e', e.message,
+ 'full message', e
+ );
+ // can't get hash from this context
+ that.worker.postMessage(JSON.stringify({'hash': null}));
+ };*/
+};
+
+NarcissusWorker.prototype.stopWorker = function() {
+ console.debug('stopping worker');
+ this.worker.postMessage('stop');
+};
+
+NarcissusWorker.prototype.parse = function(scriptText, hash) {
+ console.debug('parsing', hash);
+ try {
+ this.worker.postMessage(JSON.stringify({
+ 'code': scriptText,
+ 'hash': hash
+ }));
+ } catch (x) {
+ console.debug('error in lib/narcissus_worker.js', x, x.lineNumber);
+ }
+
+};
+
+var narcissusWorker = new NarcissusWorker();
+exports.narcissusWorker = narcissusWorker;