Index: chrome/content/ui/sidebar.js |
=================================================================== |
--- a/chrome/content/ui/sidebar.js |
+++ b/chrome/content/ui/sidebar.js |
@@ -84,19 +84,18 @@ function init() { |
defaults = params.position; |
let wnd = parent.document.documentElement; |
for (let attr in defaults) |
if (!wnd.hasAttribute(attr)) |
wnd.setAttribute(attr, defaults[attr]); |
} |
- let {getBrowser, addBrowserLocationListener} = require("appSupport"); |
+ let {addBrowserLocationListener} = require("appSupport"); |
updateContentLocation(); |
- Object.defineProperty(window, "content", { get: () => getBrowser(mainWin).contentWindow }); |
// Initialize matcher for disabled filters |
reloadDisabledFilters(); |
FilterNotifier.addListener(reloadDisabledFilters); |
Prefs.addListener(onPrefChange); |
// Activate flasher |
list.addEventListener("select", onSelectionChange, false); |
@@ -121,16 +120,25 @@ function updateContentLocation() |
{ |
let {getCurrentLocation} = require("appSupport"); |
let location = getCurrentLocation(mainWin); |
if (location instanceof Ci.nsIURI) |
location = location.spec; |
contentLocation = location; |
} |
+function getOuterWindowID() |
+{ |
+ let {getBrowser} = require("appSupport"); |
+ let browser = getBrowser(mainWin); |
+ if ("selectedBrowser" in browser) |
+ browser = browser.selectedBrowser; |
+ return browser.outerWindowID; |
+} |
+ |
function getFilter(item) |
{ |
if ("filter" in item && item.filter) |
return Filter.fromText(item.filter); |
else |
return null; |
} |
@@ -197,43 +205,41 @@ function reloadDisabledFiltersInternal() |
// Called whenever list selection changes - triggers flasher |
function onSelectionChange() { |
var item = treeView.getSelectedItem(); |
if (item) |
E("copy-command").removeAttribute("disabled"); |
else |
E("copy-command").setAttribute("disabled", "true"); |
- if (item && window.content) |
+ if (item) |
{ |
let key = item.location + " " + item.type + " " + item.docDomain; |
- RequestNotifier.storeSelection(window.content, key); |
+ RequestNotifier.storeWindowData(getOuterWindowID(), key); |
treeView.itemToSelect = null; |
} |
if (requestNotifier) |
requestNotifier.flashNodes(item ? item.ids : null, Prefs.flash_scrolltoitem); |
} |
function handleLocationChange() |
{ |
if (requestNotifier) |
requestNotifier.shutdown(); |
updateContentLocation(); |
treeView.clearData(); |
- let {getBrowser, addBrowserLocationListener} = require("appSupport"); |
- let browser = getBrowser(mainWin); |
- if ("selectedBrowser" in browser) |
- browser = browser.selectedBrowser; |
- let outerWindowID = browser.outerWindowID; |
- if (window.content) |
- treeView.itemToSelect = RequestNotifier.getSelection(window.content); |
- requestNotifier = new RequestNotifier(outerWindowID, function(item, scanComplete) |
+ let outerWindowID = getOuterWindowID(); |
+ RequestNotifier.retrieveWindowData(outerWindowID, key => |
+ { |
+ treeView.itemToSelect = key; |
+ }); |
+ requestNotifier = new RequestNotifier(outerWindowID, (item, scanComplete) => |
{ |
if (item) |
treeView.addItem(item, scanComplete); |
}); |
cacheStorage = null; |
} |
// Fills a box with text splitting it up into multiple lines if necessary |