| Index: assets/js/ElemHide.jsm |
| diff --git a/assets/js/ElemHide.jsm b/assets/js/ElemHide.jsm |
| deleted file mode 100755 |
| index d95421ef57568b07d3ea5338851a82a38c1dbf91..0000000000000000000000000000000000000000 |
| --- a/assets/js/ElemHide.jsm |
| +++ /dev/null |
| @@ -1,315 +0,0 @@ |
| -/* |
| - * This file is part of Adblock Plus <http://adblockplus.org/>, |
| - * Copyright (C) 2006-2014 Eyeo GmbH |
| - * |
| - * Adblock Plus is free software: you can redistribute it and/or modify |
| - * it under the terms of the GNU General Public License version 3 as |
| - * published by the Free Software Foundation. |
| - * |
| - * Adblock Plus 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 Adblock Plus. If not, see <http://www.gnu.org/licenses/>. |
| - */ |
| - |
| - |
| -// |
| -// This file has been generated automatically from Adblock Plus source code |
| -// |
| - |
| -(function (_patchFunc0) { |
| - var filterByKey = { |
| - __proto__: null |
| - }; |
| - var styleURL = null; |
| - var ElemHide = { |
| - isDirty: false, |
| - applied: false, |
| - keyByFilter: { |
| - __proto__: null |
| - }, |
| - init: function () { |
| - Prefs.addListener(function (name) { |
| - if (name == "enabled") |
| - ElemHide.apply(); |
| - } |
| - ); |
| - var styleFile = Utils.resolveFilePath(Prefs.data_directory); |
| - styleFile.append("elemhide.css"); |
| - styleURL = Utils.ioService.newFileURI(styleFile).QueryInterface(Ci.nsIFileURL); |
| - var registrar = Components.manager.QueryInterface(Ci.nsIComponentRegistrar); |
| - registrar.registerFactory(ElemHidePrivate.classID, ElemHidePrivate.classDescription, "@mozilla.org/network/protocol/about;1?what=" + ElemHidePrivate.aboutPrefix, ElemHidePrivate); |
| - } |
| - , |
| - clear: function () { |
| - filterByKey = { |
| - __proto__: null |
| - }; |
| - ElemHide.keyByFilter = { |
| - __proto__: null |
| - }; |
| - ElemHide.isDirty = false; |
| - ElemHide.unapply(); |
| - } |
| - , |
| - add: function (filter) { |
| - if (filter.text in ElemHide.keyByFilter) |
| - return ; |
| - var key; |
| - do { |
| - key = Math.random().toFixed(15).substr(5); |
| - } |
| - while (key in filterByKey); |
| - filterByKey[key] = filter.text; |
| - ElemHide.keyByFilter[filter.text] = key; |
| - ElemHide.isDirty = true; |
| - } |
| - , |
| - remove: function (filter) { |
| - if (!(filter.text in ElemHide.keyByFilter)) |
| - return ; |
| - var key = ElemHide.keyByFilter[filter.text]; |
| - delete filterByKey[key]; |
| - delete ElemHide.keyByFilter[filter.text]; |
| - ElemHide.isDirty = true; |
| - } |
| - , |
| - apply: function () { |
| - if (ElemHide.applied) |
| - ElemHide.unapply(); |
| - try { |
| - if (!Prefs.enabled) { |
| - return ; |
| - } |
| - if (ElemHide.isDirty) { |
| - ElemHide.isDirty = false; |
| - var domains = { |
| - __proto__: null |
| - }; |
| - var hasFilters = false; |
| - for (var key in filterByKey) { |
| - var filter = Filter.knownFilters[filterByKey[key]]; |
| - if (!filter) { |
| - delete filterByKey[key]; |
| - continue; |
| - } |
| - var domain = filter.selectorDomain || ""; |
| - var list; |
| - if (domain in domains) |
| - list = domains[domain]; |
| - else { |
| - list = { |
| - __proto__: null |
| - }; |
| - domains[domain] = list; |
| - } |
| - list[filter.selector] = key; |
| - hasFilters = true; |
| - } |
| - if (!hasFilters) { |
| - return ; |
| - } |
| - try { |
| - styleURL.file.parent.create(Ci.nsIFile.DIRECTORY_TYPE, 493); |
| - } |
| - catch (e){} |
| - var stream; |
| - try { |
| - stream = Cc["@mozilla.org/network/safe-file-output-stream;1"].createInstance(Ci.nsIFileOutputStream); |
| - stream.init(styleURL.file, 2 | 8 | 32, 420, 0); |
| - } |
| - catch (e){ |
| - Cu.reportError(e); |
| - return ; |
| - } |
| - var buf = []; |
| - var maxBufLen = 1024; |
| - function escapeChar(match) { |
| - return "\\" + match.charCodeAt(0).toString(16) + " "; |
| - } |
| - function writeString(str, forceWrite) { |
| - buf.push(str); |
| - if (buf.length >= maxBufLen || forceWrite) { |
| - var output = buf.join("").replace(/[^\x01-\x7F]/g, escapeChar); |
| - stream.write(output, output.length); |
| - buf.splice(0, buf.length); |
| - } |
| - } |
| - var cssTemplate = "-moz-binding: url(about:" + ElemHidePrivate.aboutPrefix + "?%ID%#dummy) !important;"; |
| - for (var domain in domains) { |
| - var rules = []; |
| - var list = domains[domain]; |
| - if (domain) |
| - writeString("@-moz-document domain(\"" + domain.split(",").join("\"),domain(\"") + "\"){\n"); |
| - else { |
| - writeString("@-moz-document url-prefix(\"http://\"),url-prefix(\"https://\"),url-prefix(\"mailbox://\"),url-prefix(\"imap://\"),url-prefix(\"news://\"),url-prefix(\"snews://\"){\n"); |
| - } |
| - for (var selector in list) |
| - writeString(selector + "{" + cssTemplate.replace("%ID%", list[selector]) + "}\n"); |
| - writeString("}\n"); |
| - } |
| - writeString("", true); |
| - try { |
| - stream.QueryInterface(Ci.nsISafeOutputStream).finish(); |
| - } |
| - catch (e){ |
| - Cu.reportError(e); |
| - return ; |
| - } |
| - } |
| - try { |
| - Utils.styleService.loadAndRegisterSheet(styleURL, Ci.nsIStyleSheetService.USER_SHEET); |
| - ElemHide.applied = true; |
| - } |
| - catch (e){ |
| - Cu.reportError(e); |
| - } |
| - } |
| - finally { |
| - FilterNotifier.triggerListeners("elemhideupdate"); |
| - } |
| - } |
| - , |
| - unapply: function () { |
| - if (ElemHide.applied) { |
| - try { |
| - Utils.styleService.unregisterSheet(styleURL, Ci.nsIStyleSheetService.USER_SHEET); |
| - } |
| - catch (e){ |
| - Cu.reportError(e); |
| - } |
| - ElemHide.applied = false; |
| - } |
| - } |
| - , |
| - get styleURL() { |
| - return ElemHide.applied ? styleURL.spec : null; |
| - }, |
| - getFilterByKey: function (key) { |
| - return (key in filterByKey ? Filter.knownFilters[filterByKey[key]] : null); |
| - } |
| - , |
| - toCache: function (cache) { |
| - cache.elemhide = { |
| - filterByKey: filterByKey |
| - }; |
| - } |
| - , |
| - fromCache: function (cache) { |
| - filterByKey = cache.elemhide.filterByKey; |
| - filterByKey.__proto__ = null; |
| - delete ElemHide.keyByFilter; |
| - ElemHide.__defineGetter__("keyByFilter", function () { |
| - var result = { |
| - __proto__: null |
| - }; |
| - for (var k in filterByKey) |
| - result[filterByKey[k]] = k; |
| - return ElemHide.keyByFilter = result; |
| - } |
| - ); |
| - ElemHide.__defineSetter__("keyByFilter", function (value) { |
| - delete ElemHide.keyByFilter; |
| - return ElemHide.keyByFilter = value; |
| - } |
| - ); |
| - } |
| - |
| - }; |
| - var ElemHidePrivate = { |
| - classID: Components.ID("{55fb7be0-1dd2-11b2-98e6-9e97caf8ba67}"), |
| - classDescription: "Element hiding hit registration protocol handler", |
| - aboutPrefix: "abp-elemhidehit", |
| - createInstance: function (outer, iid) { |
| - if (outer != null) |
| - throw Cr.NS_ERROR_NO_AGGREGATION; |
| - return this.QueryInterface(iid); |
| - } |
| - , |
| - getURIFlags: function (uri) { |
| - return ("HIDE_FROM_ABOUTABOUT" in Ci.nsIAboutModule ? Ci.nsIAboutModule.HIDE_FROM_ABOUTABOUT : 0); |
| - } |
| - , |
| - newChannel: function (uri) { |
| - if (!/\?(\d+)/.test(uri.path)) |
| - throw Cr.NS_ERROR_FAILURE; |
| - return new HitRegistrationChannel(uri, RegExp["$1"]); |
| - } |
| - , |
| - QueryInterface: XPCOMUtils.generateQI([Ci.nsIFactory, Ci.nsIAboutModule]) |
| - }; |
| - function HitRegistrationChannel(uri, key) { |
| - this.key = key; |
| - this.URI = this.originalURI = uri; |
| - } |
| - HitRegistrationChannel.prototype = { |
| - key: null, |
| - URI: null, |
| - originalURI: null, |
| - contentCharset: "utf-8", |
| - contentLength: 0, |
| - contentType: "text/xml", |
| - owner: Utils.systemPrincipal, |
| - securityInfo: null, |
| - notificationCallbacks: null, |
| - loadFlags: 0, |
| - loadGroup: null, |
| - name: null, |
| - status: Cr.NS_OK, |
| - asyncOpen: function (listener, context) { |
| - var stream = this.open(); |
| - Utils.runAsync(function () { |
| - try { |
| - listener.onStartRequest(this, context); |
| - } |
| - catch (e){} |
| - try { |
| - listener.onDataAvailable(this, context, stream, 0, stream.available()); |
| - } |
| - catch (e){} |
| - try { |
| - listener.onStopRequest(this, context, Cr.NS_OK); |
| - } |
| - catch (e){} |
| - } |
| - , this); |
| - } |
| - , |
| - open: function () { |
| - var data = "<bindings xmlns='http://www.mozilla.org/xbl'><binding id='dummy'/></bindings>"; |
| - if (this.key in filterByKey) { |
| - var wnd = Utils.getRequestWindow(this); |
| - if (wnd && wnd.document && !Policy.processNode(wnd, wnd.document, Policy.type.ELEMHIDE, Filter.knownFilters[filterByKey[this.key]])) |
| - data = "<bindings xmlns='http://www.mozilla.org/xbl'/>"; |
| - } |
| - var stream = Cc["@mozilla.org/io/string-input-stream;1"].createInstance(Ci.nsIStringInputStream); |
| - stream.setData(data, data.length); |
| - return stream; |
| - } |
| - , |
| - isPending: function () { |
| - return false; |
| - } |
| - , |
| - cancel: function () { |
| - throw Cr.NS_ERROR_NOT_IMPLEMENTED; |
| - } |
| - , |
| - suspend: function () { |
| - throw Cr.NS_ERROR_NOT_IMPLEMENTED; |
| - } |
| - , |
| - resume: function () { |
| - throw Cr.NS_ERROR_NOT_IMPLEMENTED; |
| - } |
| - , |
| - QueryInterface: XPCOMUtils.generateQI([Ci.nsIChannel, Ci.nsIRequest]) |
| - }; |
| - if (typeof _patchFunc0 != "undefined") |
| - eval("(" + _patchFunc0.toString() + ")()"); |
| - window.ElemHide = ElemHide; |
| -} |
| -)(window.ElemHidePatch); |