タブに開いたchromeウィンドウからタブを閉じる

ブラウザタブに chrome:// のURLをロードして読み込まれた Window から、タブを閉じる方法。
単純に Window 内で window.close(); してやればタブは閉じられる。
しかし、タブが残りひとつであった場合、ウィンドウ自体も閉じられてしまう。
これを防ぐには、親のブラウザウィンドウを参照し、 cmd_close コマンドを実行すれば良い。
タブ内の Window から親のブラウザウィンドウを参照するには、 nsIWindowMediator を利用すれば良い。ただし、最後に使用したブラウザウィンドウが親のブラウザウィンドウであるという前提条件付きである。

var winMed = Components.classes['@mozilla.org/appshell/window-mediator;1'].
             getService(Components.interfaces.nsIWindowMediator); 
var browserWin = winMed.getMostRecentWindow("navigator:browser");
browserWin.document.getElementById("cmd_close").doCommand();

TOP

TOP