From 78bdd52f9158f09bdd33fbb2260293a5ad8ada29 Mon Sep 17 00:00:00 2001 From: Sindre Dammann Date: Wed, 25 Aug 2010 15:16:33 +0200 Subject: [PATCH] Bug 585830 - A closing tab can be switched to with Ctrl+PageUp/PageDown. r=dao --- browser/base/content/tabbrowser.xml | 9 +++ browser/base/content/test/Makefile.in | 1 + .../base/content/test/browser_bug585830.js | 57 +++++++++++++++++++ toolkit/content/widgets/tabbox.xml | 13 ++++- 4 files changed, 78 insertions(+), 2 deletions(-) create mode 100644 browser/base/content/test/browser_bug585830.js diff --git a/browser/base/content/tabbrowser.xml b/browser/base/content/tabbrowser.xml index 8679b48f40d..8c99f0474ea 100644 --- a/browser/base/content/tabbrowser.xml +++ b/browser/base/content/tabbrowser.xml @@ -2866,6 +2866,15 @@ this.mTabstrip._updateScrollButtonsDisabledState(); ]]> + + + + + + + + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +function test() { + let tab1 = gBrowser.selectedTab; + let tab2 = gBrowser.addTab("about:blank", {skipAnimation: true}); + let tab3 = gBrowser.addTab(); + gBrowser.selectedTab = tab2; + + gBrowser.removeCurrentTab({animate: true}); + gBrowser.tabContainer.advanceSelectedTab(-1, true); + is(gBrowser.selectedTab, tab1, "First tab should be selected"); + gBrowser.removeTab(tab2); + + // test for "null has no properties" fix. See Bug 585830 Comment 13 + gBrowser.removeCurrentTab({animate: true}); + try { + gBrowser.tabContainer.advanceSelectedTab(-1, false); + } catch(err) { + ok(false, "Shouldn't throw"); + } + + gBrowser.removeTab(tab1); +} diff --git a/toolkit/content/widgets/tabbox.xml b/toolkit/content/widgets/tabbox.xml index 6a5d95b4d8e..2c07accf91f 100644 --- a/toolkit/content/widgets/tabbox.xml +++ b/toolkit/content/widgets/tabbox.xml @@ -458,12 +458,12 @@ + + + + + + +