mirror of
https://github.com/gorhill/uBlock.git
synced 2024-10-06 09:37:12 +02:00
this fixes #287
This commit is contained in:
parent
62a4831bd1
commit
013b077656
@ -469,17 +469,13 @@ vAPI.tabs.registerListeners = function() {
|
|||||||
// [manual search to go back to tab from list of windows]
|
// [manual search to go back to tab from list of windows]
|
||||||
|
|
||||||
vAPI.tabs.get = function(tabId, callback) {
|
vAPI.tabs.get = function(tabId, callback) {
|
||||||
var win, browser;
|
var browser;
|
||||||
|
|
||||||
if ( tabId === null ) {
|
if ( tabId === null ) {
|
||||||
win = Services.wm.getMostRecentWindow('navigator:browser');
|
browser = tabWatcher.currentBrowser();
|
||||||
browser = tabWatcher.browserFromTarget(getTabBrowser(win).selectedTab);
|
|
||||||
tabId = tabWatcher.tabIdFromTarget(browser);
|
tabId = tabWatcher.tabIdFromTarget(browser);
|
||||||
} else {
|
} else {
|
||||||
browser = tabWatcher.browserFromTabId(tabId);
|
browser = tabWatcher.browserFromTabId(tabId);
|
||||||
if ( browser ) {
|
|
||||||
win = getOwnerWindow(browser);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// For internal use
|
// For internal use
|
||||||
@ -492,8 +488,9 @@ vAPI.tabs.get = function(tabId, callback) {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
var windows = this.getWindows();
|
var win = getOwnerWindow(browser);
|
||||||
var tabBrowser = getTabBrowser(win);
|
var tabBrowser = getTabBrowser(win);
|
||||||
|
var windows = this.getWindows();
|
||||||
|
|
||||||
callback({
|
callback({
|
||||||
id: tabId,
|
id: tabId,
|
||||||
@ -659,22 +656,20 @@ vAPI.tabs.remove = function(tabId) {
|
|||||||
/******************************************************************************/
|
/******************************************************************************/
|
||||||
|
|
||||||
vAPI.tabs.reload = function(tabId) {
|
vAPI.tabs.reload = function(tabId) {
|
||||||
var tab = this.get(tabId);
|
var browser = tabWatcher.browserFromTabId(tabId);
|
||||||
|
if ( !browser ) {
|
||||||
if ( !tab ) {
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
tabWatcher.browserFromTarget(tab).webNavigation.reload(
|
browser.webNavigation.reload(Ci.nsIWebNavigation.LOAD_FLAGS_BYPASS_CACHE);
|
||||||
Ci.nsIWebNavigation.LOAD_FLAGS_BYPASS_CACHE
|
|
||||||
);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/******************************************************************************/
|
/******************************************************************************/
|
||||||
|
|
||||||
vAPI.tabs.select = function(tab) {
|
vAPI.tabs.select = function(tab) {
|
||||||
tab = typeof tab === 'object' ? tab : this.get(tab);
|
if ( typeof tab !== 'object' ) {
|
||||||
|
tab = tabWatcher.tabFromBrowser(tabWatcher.browserFromTabId(tab));
|
||||||
|
}
|
||||||
if ( !tab ) {
|
if ( !tab ) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -691,9 +686,8 @@ vAPI.tabs.select = function(tab) {
|
|||||||
/******************************************************************************/
|
/******************************************************************************/
|
||||||
|
|
||||||
vAPI.tabs.injectScript = function(tabId, details, callback) {
|
vAPI.tabs.injectScript = function(tabId, details, callback) {
|
||||||
var tab = this.get(tabId);
|
var browser = tabWatcher.browserFromTabId(tabId);
|
||||||
|
if ( !browser ) {
|
||||||
if ( !tab ) {
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -702,7 +696,7 @@ vAPI.tabs.injectScript = function(tabId, details, callback) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
details.file = vAPI.getURL(details.file);
|
details.file = vAPI.getURL(details.file);
|
||||||
tabWatcher.browserFromTarget(tab).messageManager.sendAsyncMessage(
|
browser.messageManager.sendAsyncMessage(
|
||||||
location.host + ':broadcast',
|
location.host + ':broadcast',
|
||||||
JSON.stringify({
|
JSON.stringify({
|
||||||
broadcast: true,
|
broadcast: true,
|
||||||
@ -817,6 +811,11 @@ var tabWatcher = (function() {
|
|||||||
return null;
|
return null;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
var currentBrowser = function() {
|
||||||
|
var win = Services.wm.getMostRecentWindow('navigator:browser');
|
||||||
|
return browserFromTarget(getTabBrowser(win).selectedTab);
|
||||||
|
};
|
||||||
|
|
||||||
var removeBrowserEntry = function(tabId, browser) {
|
var removeBrowserEntry = function(tabId, browser) {
|
||||||
if ( tabId && tabId !== vAPI.noTabId ) {
|
if ( tabId && tabId !== vAPI.noTabId ) {
|
||||||
vAPI.tabs.onClosed(tabId);
|
vAPI.tabs.onClosed(tabId);
|
||||||
@ -976,13 +975,14 @@ var tabWatcher = (function() {
|
|||||||
cleanupTasks.push(stop);
|
cleanupTasks.push(stop);
|
||||||
|
|
||||||
return {
|
return {
|
||||||
start: start,
|
|
||||||
browserFromTarget: browserFromTarget,
|
|
||||||
browsers: function() { return browserToTabIdMap.keys(); },
|
browsers: function() { return browserToTabIdMap.keys(); },
|
||||||
tabIdFromTarget: tabIdFromTarget,
|
|
||||||
browserFromTabId: browserFromTabId,
|
browserFromTabId: browserFromTabId,
|
||||||
|
browserFromTarget: browserFromTarget,
|
||||||
|
currentBrowser: currentBrowser,
|
||||||
indexFromTarget: indexFromTarget,
|
indexFromTarget: indexFromTarget,
|
||||||
tabFromBrowser: tabFromBrowser
|
start: start,
|
||||||
|
tabFromBrowser: tabFromBrowser,
|
||||||
|
tabIdFromTarget: tabIdFromTarget
|
||||||
};
|
};
|
||||||
})();
|
})();
|
||||||
|
|
||||||
@ -2184,7 +2184,7 @@ var optionsObserver = {
|
|||||||
Services.obs.addObserver(this, 'addon-options-displayed', false);
|
Services.obs.addObserver(this, 'addon-options-displayed', false);
|
||||||
cleanupTasks.push(this.unregister.bind(this));
|
cleanupTasks.push(this.unregister.bind(this));
|
||||||
|
|
||||||
var browser = tabWatcher.browserFromTarget(vAPI.tabs.get(null));
|
var browser = tabWatcher.currentBrowser();
|
||||||
if ( browser && browser.currentURI && browser.currentURI.spec === 'about:addons' ) {
|
if ( browser && browser.currentURI && browser.currentURI.spec === 'about:addons' ) {
|
||||||
this.observe(browser.contentDocument, 'addon-enabled', this.addonId);
|
this.observe(browser.contentDocument, 'addon-enabled', this.addonId);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user