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 |
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
82 let defaults = {screenX: 0, screenY: 0, width: 600, height: 300}; | 82 let defaults = {screenX: 0, screenY: 0, width: 600, height: 300}; |
83 if (params && params.position) | 83 if (params && params.position) |
84 defaults = params.position; | 84 defaults = params.position; |
85 | 85 |
86 let wnd = parent.document.documentElement; | 86 let wnd = parent.document.documentElement; |
87 for (let attr in defaults) | 87 for (let attr in defaults) |
88 if (!wnd.hasAttribute(attr)) | 88 if (!wnd.hasAttribute(attr)) |
89 wnd.setAttribute(attr, defaults[attr]); | 89 wnd.setAttribute(attr, defaults[attr]); |
90 } | 90 } |
91 | 91 |
92 let {getBrowser, addBrowserLocationListener} = require("appSupport"); | 92 let {addBrowserLocationListener} = require("appSupport"); |
93 updateContentLocation(); | 93 updateContentLocation(); |
94 Object.defineProperty(window, "content", { get: () => getBrowser(mainWin).cont
entWindow }); | |
95 | 94 |
96 // Initialize matcher for disabled filters | 95 // Initialize matcher for disabled filters |
97 reloadDisabledFilters(); | 96 reloadDisabledFilters(); |
98 FilterNotifier.addListener(reloadDisabledFilters); | 97 FilterNotifier.addListener(reloadDisabledFilters); |
99 Prefs.addListener(onPrefChange); | 98 Prefs.addListener(onPrefChange); |
100 | 99 |
101 // Activate flasher | 100 // Activate flasher |
102 list.addEventListener("select", onSelectionChange, false); | 101 list.addEventListener("select", onSelectionChange, false); |
103 | 102 |
104 // Initialize data | 103 // Initialize data |
(...skipping 14 matching lines...) Expand all Loading... |
119 | 118 |
120 function updateContentLocation() | 119 function updateContentLocation() |
121 { | 120 { |
122 let {getCurrentLocation} = require("appSupport"); | 121 let {getCurrentLocation} = require("appSupport"); |
123 let location = getCurrentLocation(mainWin); | 122 let location = getCurrentLocation(mainWin); |
124 if (location instanceof Ci.nsIURI) | 123 if (location instanceof Ci.nsIURI) |
125 location = location.spec; | 124 location = location.spec; |
126 contentLocation = location; | 125 contentLocation = location; |
127 } | 126 } |
128 | 127 |
| 128 function getOuterWindowID() |
| 129 { |
| 130 let {getBrowser} = require("appSupport"); |
| 131 let browser = getBrowser(mainWin); |
| 132 if ("selectedBrowser" in browser) |
| 133 browser = browser.selectedBrowser; |
| 134 return browser.outerWindowID; |
| 135 } |
| 136 |
129 function getFilter(item) | 137 function getFilter(item) |
130 { | 138 { |
131 if ("filter" in item && item.filter) | 139 if ("filter" in item && item.filter) |
132 return Filter.fromText(item.filter); | 140 return Filter.fromText(item.filter); |
133 else | 141 else |
134 return null; | 142 return null; |
135 } | 143 } |
136 | 144 |
137 // To be called on unload | 145 // To be called on unload |
138 function cleanUp() { | 146 function cleanUp() { |
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
195 } | 203 } |
196 | 204 |
197 // Called whenever list selection changes - triggers flasher | 205 // Called whenever list selection changes - triggers flasher |
198 function onSelectionChange() { | 206 function onSelectionChange() { |
199 var item = treeView.getSelectedItem(); | 207 var item = treeView.getSelectedItem(); |
200 if (item) | 208 if (item) |
201 E("copy-command").removeAttribute("disabled"); | 209 E("copy-command").removeAttribute("disabled"); |
202 else | 210 else |
203 E("copy-command").setAttribute("disabled", "true"); | 211 E("copy-command").setAttribute("disabled", "true"); |
204 | 212 |
205 if (item && window.content) | 213 if (item) |
206 { | 214 { |
207 let key = item.location + " " + item.type + " " + item.docDomain; | 215 let key = item.location + " " + item.type + " " + item.docDomain; |
208 RequestNotifier.storeSelection(window.content, key); | 216 RequestNotifier.storeWindowData(getOuterWindowID(), key); |
209 treeView.itemToSelect = null; | 217 treeView.itemToSelect = null; |
210 } | 218 } |
211 | 219 |
212 if (requestNotifier) | 220 if (requestNotifier) |
213 requestNotifier.flashNodes(item ? item.ids : null, Prefs.flash_scrolltoitem)
; | 221 requestNotifier.flashNodes(item ? item.ids : null, Prefs.flash_scrolltoitem)
; |
214 } | 222 } |
215 | 223 |
216 function handleLocationChange() | 224 function handleLocationChange() |
217 { | 225 { |
218 if (requestNotifier) | 226 if (requestNotifier) |
219 requestNotifier.shutdown(); | 227 requestNotifier.shutdown(); |
220 | 228 |
221 updateContentLocation(); | 229 updateContentLocation(); |
222 treeView.clearData(); | 230 treeView.clearData(); |
223 | 231 |
224 let {getBrowser, addBrowserLocationListener} = require("appSupport"); | 232 let outerWindowID = getOuterWindowID(); |
225 let browser = getBrowser(mainWin); | 233 RequestNotifier.retrieveWindowData(outerWindowID, key => |
226 if ("selectedBrowser" in browser) | 234 { |
227 browser = browser.selectedBrowser; | 235 treeView.itemToSelect = key; |
228 let outerWindowID = browser.outerWindowID; | 236 }); |
229 if (window.content) | 237 requestNotifier = new RequestNotifier(outerWindowID, (item, scanComplete) => |
230 treeView.itemToSelect = RequestNotifier.getSelection(window.content); | |
231 requestNotifier = new RequestNotifier(outerWindowID, function(item, scanComple
te) | |
232 { | 238 { |
233 if (item) | 239 if (item) |
234 treeView.addItem(item, scanComplete); | 240 treeView.addItem(item, scanComplete); |
235 }); | 241 }); |
236 cacheStorage = null; | 242 cacheStorage = null; |
237 } | 243 } |
238 | 244 |
239 // Fills a box with text splitting it up into multiple lines if necessary | 245 // Fills a box with text splitting it up into multiple lines if necessary |
240 function setMultilineContent(box, text, noRemove) | 246 function setMultilineContent(box, text, noRemove) |
241 { | 247 { |
(...skipping 1088 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1330 return {tooltip: this.itemsDummyTooltip}; | 1336 return {tooltip: this.itemsDummyTooltip}; |
1331 }, | 1337 }, |
1332 | 1338 |
1333 invalidateItem: function(item) | 1339 invalidateItem: function(item) |
1334 { | 1340 { |
1335 let row = this.data.indexOf(item); | 1341 let row = this.data.indexOf(item); |
1336 if (row >= 0) | 1342 if (row >= 0) |
1337 this.boxObject.invalidateRow(row); | 1343 this.boxObject.invalidateRow(row); |
1338 } | 1344 } |
1339 } | 1345 } |
OLD | NEW |