From f2c0ef20b14d010dda7ad1f259462bda6f795d4c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?D=C3=A3o=20Gottwald?= Date: Thu, 6 Feb 2014 17:28:54 +0100 Subject: [PATCH] Bug 747338 - Set last-accessed timestamp when deselecting tabs rather than when selecting them. r=ttaubert --- browser/base/content/tabbrowser.xml | 13 ++++++-- .../test/general/browser_lastAccessedTab.js | 32 +++++++++---------- 2 files changed, 26 insertions(+), 19 deletions(-) diff --git a/browser/base/content/tabbrowser.xml b/browser/base/content/tabbrowser.xml index d3625c2a105..715b041612e 100644 --- a/browser/base/content/tabbrowser.xml +++ b/browser/base/content/tabbrowser.xml @@ -1049,7 +1049,7 @@ if (!this._previewMode) { this.mCurrentTab.removeAttribute("unread"); - this.selectedTab.lastAccessed = Date.now(); + oldTab.lastAccessed = Date.now(); let oldFindBar = oldTab._findBar; if (oldFindBar && @@ -4719,10 +4719,19 @@ + + + return this.selected ? Date.now() : this._lastAccessed; + + + this._lastAccessed = val; + + + 0 + false null false - 0 0) - * 4. Selects the original tab & checks if new tab's timestamp has remained changed - */ - function test() { let originalTab = gBrowser.selectedTab; + isnot(originalTab.lastAccessed, 0, "selectedTab has been selected"); + ok(originalTab.lastAccessed <= Date.now(), "selectedTab has a valid timestamp"); + let newTab = gBrowser.addTab("about:blank", {skipAnimation: true}); - is(newTab.lastAccessed, 0, "Timestamp on the new tab is 0."); + is(newTab.lastAccessed, 0, "newTab hasn't been selected so far"); + gBrowser.selectedTab = newTab; - let newTabAccessedDate = newTab.lastAccessed; - ok(newTabAccessedDate > 0, "Timestamp on the selected tab is more than 0."); - // Date.now is not guaranteed to be monotonic, so include one second of fudge. - let now = Date.now() + 1000; - ok(newTabAccessedDate <= now, "Timestamp less than or equal current Date: " + newTabAccessedDate + " <= " + now); - gBrowser.selectedTab = originalTab; - is(newTab.lastAccessed, newTabAccessedDate, "New tab's timestamp remains the same."); + + isnot(newTab.lastAccessed, 0, "newTab has been selected"); + ok(newTab.lastAccessed <= Date.now(), "newTab has a valid timestamp"); + + isnot(originalTab.lastAccessed, 0, "originalTab has been selected"); + ok(originalTab.lastAccessed <= Date.now(), "originalTab has a valid timestamp"); + + ok(originalTab.lastAccessed <= newTab.lastAccessed, + "originalTab's timestamp must be lower than newTab's"); + gBrowser.removeTab(newTab); }