1
0
mirror of https://github.com/gorhill/uBlock.git synced 2024-10-06 09:37:12 +02:00
This commit is contained in:
gorhill 2015-06-03 09:01:58 -04:00
parent 62a4831bd1
commit 013b077656

View File

@ -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);
} }