Из XPCOM вы сможете получить ссылку на главное окно, используя:
var mainWindow = window.QueryInterface(Components.interfaces.nsIInterfaceRequestor)
.getInterface(Components.interfaces.nsIWebNavigation)
.QueryInterface(Components.interfaces.nsIDocShellTreeItem)
.rootTreeItem
.QueryInterface(Components.interfaces.nsIInterfaceRequestor)
.getInterface(Components.interfaces.nsIDOMWindow);
Затем вы можете получить выбранный в данный момент вкладочный документ с помощью:
document = mainWindow.gBrowser.contentDocument;
ВыБолее подробную информацию можно найти здесь:
https://developer.mozilla.org/en/Code_snippets/Tabbed_browser
https://developer.mozilla.org/en/Working_with_windows_in_chrome_code
ОБНОВЛЕНИЕ:
Попробуйте это, вам следуетбыть в состоянии получить ссылку на самое последнее окно:
var wm = Components.classes["@mozilla.org/appshell/window-mediator;1"]
.getService(Components.interfaces.nsIWindowMediator);
var recentWindow = wm.getMostRecentWindow("navigator:browser");
Если у вас есть несколько вкладок, вы используете что-то вроде этого (код с сайта разработчика Mozilla), чтобы перебрать все из них и получить доступ к каждому документу:
var num = gBrowser.browsers.length;
for (var i = 0; i < num; i++) {
var b = gBrowser.getBrowserAtIndex(i);
try {
dump(b.currentURI.spec); // dump URLs of all open tabs to console
} catch(e) {
Components.utils.reportError(e);
}
}