| OLD | NEW |
| 1 /* | 1 /* |
| 2 * This file is part of Adblock Plus <https://adblockplus.org/>, | 2 * This file is part of Adblock Plus <https://adblockplus.org/>, |
| 3 * Copyright (C) 2006-2015 Eyeo GmbH | 3 * Copyright (C) 2006-2015 Eyeo GmbH |
| 4 * | 4 * |
| 5 * Adblock Plus is free software: you can redistribute it and/or modify | 5 * Adblock Plus is free software: you can redistribute it and/or modify |
| 6 * it under the terms of the GNU General Public License version 3 as | 6 * it under the terms of the GNU General Public License version 3 as |
| 7 * published by the Free Software Foundation. | 7 * published by the Free Software Foundation. |
| 8 * | 8 * |
| 9 * Adblock Plus is distributed in the hope that it will be useful, | 9 * Adblock Plus is distributed in the hope that it will be useful, |
| 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of | 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
| 11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | 11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| 12 * GNU General Public License for more details. | 12 * GNU General Public License for more details. |
| 13 * | 13 * |
| 14 * You should have received a copy of the GNU General Public License | 14 * You should have received a copy of the GNU General Public License |
| 15 * along with Adblock Plus. If not, see <http://www.gnu.org/licenses/>. | 15 * along with Adblock Plus. If not, see <http://www.gnu.org/licenses/>. |
| 16 */ | 16 */ |
| 17 | 17 |
| 18 Cu.import("resource://gre/modules/XPCOMUtils.jsm"); | 18 Cu.import("resource://gre/modules/XPCOMUtils.jsm"); |
| 19 | 19 |
| 20 // Main browser window | 20 // Main browser window |
| 21 var mainWin = parent; | 21 var mainWin = parent; |
| 22 | 22 |
| 23 // The window handler currently in use | 23 // The window handler currently in use |
| 24 var requestNotifier = null; | 24 var requestNotifier = null; |
| 25 | 25 |
| 26 var cacheStorage = null; | 26 var cacheStorage = null; |
| 27 var noFlash = false; | |
| 28 | 27 |
| 29 // Matcher for disabled filters | 28 // Matcher for disabled filters |
| 30 var disabledMatcher = new CombinedMatcher(); | 29 var disabledMatcher = new CombinedMatcher(); |
| 31 | 30 |
| 32 // Cached string values | 31 // Cached string values |
| 33 var docDomainThirdParty = null; | 32 var docDomainThirdParty = null; |
| 34 var docDomainFirstParty = null; | 33 var docDomainFirstParty = null; |
| 35 | 34 |
| 36 // Localized type names | 35 // Localized type names |
| 37 var localizedTypes = new Map(); | 36 var localizedTypes = new Map(); |
| (...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 117 function getFilter(item) | 116 function getFilter(item) |
| 118 { | 117 { |
| 119 if ("filter" in item && item.filter) | 118 if ("filter" in item && item.filter) |
| 120 return Filter.fromText(item.filter); | 119 return Filter.fromText(item.filter); |
| 121 else | 120 else |
| 122 return null; | 121 return null; |
| 123 } | 122 } |
| 124 | 123 |
| 125 // To be called on unload | 124 // To be called on unload |
| 126 function cleanUp() { | 125 function cleanUp() { |
| 127 flasher.stop(); | |
| 128 requestNotifier.shutdown(); | 126 requestNotifier.shutdown(); |
| 129 FilterNotifier.removeListener(reloadDisabledFilters); | 127 FilterNotifier.removeListener(reloadDisabledFilters); |
| 130 Prefs.removeListener(onPrefChange); | 128 Prefs.removeListener(onPrefChange); |
| 131 E("list").view = null; | 129 E("list").view = null; |
| 132 | 130 |
| 133 let {removeBrowserLocationListener} = require("appSupport"); | 131 let {removeBrowserLocationListener} = require("appSupport"); |
| 134 if (removeBrowserLocationListener) | 132 if (removeBrowserLocationListener) |
| 135 removeBrowserLocationListener(mainWin, handleLocationChange); | 133 removeBrowserLocationListener(mainWin, handleLocationChange); |
| 136 mainWin.removeEventListener("unload", mainUnload, false); | 134 mainWin.removeEventListener("unload", mainUnload, false); |
| 137 } | 135 } |
| (...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 191 else | 189 else |
| 192 E("copy-command").setAttribute("disabled", "true"); | 190 E("copy-command").setAttribute("disabled", "true"); |
| 193 | 191 |
| 194 if (item && window.content) | 192 if (item && window.content) |
| 195 { | 193 { |
| 196 let key = item.location + " " + item.type + " " + item.docDomain; | 194 let key = item.location + " " + item.type + " " + item.docDomain; |
| 197 RequestNotifier.storeSelection(window.content, key); | 195 RequestNotifier.storeSelection(window.content, key); |
| 198 treeView.itemToSelect = null; | 196 treeView.itemToSelect = null; |
| 199 } | 197 } |
| 200 | 198 |
| 201 if (!noFlash) | 199 if (requestNotifier) |
| 202 flasher.flash(item ? item.nodes : null); | 200 requestNotifier.flashNodes(item ? item.ids : null, Prefs.flash_scrolltoitem)
; |
| 203 } | 201 } |
| 204 | 202 |
| 205 function handleLocationChange() | 203 function handleLocationChange() |
| 206 { | 204 { |
| 207 if (requestNotifier) | 205 if (requestNotifier) |
| 208 requestNotifier.shutdown(); | 206 requestNotifier.shutdown(); |
| 209 | 207 |
| 210 treeView.clearData(); | 208 treeView.clearData(); |
| 211 | 209 |
| 212 let {getBrowser, addBrowserLocationListener} = require("appSupport"); | 210 let {getBrowser, addBrowserLocationListener} = require("appSupport"); |
| (...skipping 869 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1082 addItem: function(/**RequestEntry*/ item, /**Boolean*/ scanComplete) | 1080 addItem: function(/**RequestEntry*/ item, /**Boolean*/ scanComplete) |
| 1083 { | 1081 { |
| 1084 // Merge duplicate entries | 1082 // Merge duplicate entries |
| 1085 let key = item.location + " " + item.type + " " + item.docDomain; | 1083 let key = item.location + " " + item.type + " " + item.docDomain; |
| 1086 if (key in this.dataMap) | 1084 if (key in this.dataMap) |
| 1087 { | 1085 { |
| 1088 // We know this item already - take over the filter if any and be done wit
h it | 1086 // We know this item already - take over the filter if any and be done wit
h it |
| 1089 let existing = this.dataMap[key]; | 1087 let existing = this.dataMap[key]; |
| 1090 if (item.filter) | 1088 if (item.filter) |
| 1091 existing.filter = item.filter; | 1089 existing.filter = item.filter; |
| 1090 existing.ids.push(item.id); |
| 1092 | 1091 |
| 1093 this.invalidateItem(existing); | 1092 this.invalidateItem(existing); |
| 1094 return; | 1093 return; |
| 1095 } | 1094 } |
| 1096 | 1095 |
| 1097 // Add new item to the list | 1096 // Add new item to the list |
| 1098 // Store original item in orig property - reading out prototype is messed up
in Gecko 1.9.2 | 1097 // Store original item in orig property - reading out prototype is messed up
in Gecko 1.9.2 |
| 1099 item = {__proto__: item, orig: item, nodes: []}; | 1098 item = {__proto__: item, orig: item, nodes: [], ids: [item.id]}; |
| 1100 this.allData.push(item); | 1099 this.allData.push(item); |
| 1101 this.dataMap[key] = item; | 1100 this.dataMap[key] = item; |
| 1102 | 1101 |
| 1103 // Show disabled filters if no other filter applies | 1102 // Show disabled filters if no other filter applies |
| 1104 if (!item.filter) | 1103 if (!item.filter) |
| 1105 { | 1104 { |
| 1106 let disabledMatch = disabledMatcher.matchesAny(item.location, RegExpFilter
.typeMap[item.type], item.docDomain, item.thirdParty); | 1105 let disabledMatch = disabledMatcher.matchesAny(item.location, RegExpFilter
.typeMap[item.type], item.docDomain, item.thirdParty); |
| 1107 if (disabledMatch) | 1106 if (disabledMatch) |
| 1108 item.filter = disabledMatch.text; | 1107 item.filter = disabledMatch.text; |
| 1109 } | 1108 } |
| (...skipping 169 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1279 return {tooltip: this.itemsDummyTooltip}; | 1278 return {tooltip: this.itemsDummyTooltip}; |
| 1280 }, | 1279 }, |
| 1281 | 1280 |
| 1282 invalidateItem: function(item) | 1281 invalidateItem: function(item) |
| 1283 { | 1282 { |
| 1284 let row = this.data.indexOf(item); | 1283 let row = this.data.indexOf(item); |
| 1285 if (row >= 0) | 1284 if (row >= 0) |
| 1286 this.boxObject.invalidateRow(row); | 1285 this.boxObject.invalidateRow(row); |
| 1287 } | 1286 } |
| 1288 } | 1287 } |
| OLD | NEW |