Bug 747338 - Set last-accessed timestamp when deselecting tabs rather than when selecting them. r=ttaubert

This commit is contained in:
Dão Gottwald 2014-02-06 17:28:54 +01:00
parent aca5aac2eb
commit f2c0ef20b1
2 changed files with 26 additions and 19 deletions

View File

@ -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 @@
</getter>
</property>
<property name="lastAccessed">
<getter>
return this.selected ? Date.now() : this._lastAccessed;
</getter>
<setter>
this._lastAccessed = val;
</setter>
</property>
<field name="_lastAccessed">0</field>
<field name="mOverCloseButton">false</field>
<field name="mCorrespondingMenuitem">null</field>
<field name="closing">false</field>
<field name="lastAccessed">0</field>
<method name="_mouseenter">
<body><![CDATA[

View File

@ -1,26 +1,24 @@
/* Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/ */
/**
* Test for bug 739866.
*
* 1. Adds a new tab (but doesn't select it)
* 2. Checks if timestamp on the new tab is 0
* 3. Selects the new tab, checks that the timestamp is updated (>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);
}