forked from mirrors/gecko-dev
Backed out changeset 289a3851e8c7 (bug 1595328) for causing test_ext_tabs_query.html to permafail CLOSED TREE
This commit is contained in:
parent
70b54837ac
commit
5df04e0ac8
4 changed files with 0 additions and 154 deletions
|
|
@ -5,11 +5,9 @@
|
||||||
const { XPCOMUtils } = ChromeUtils.import(
|
const { XPCOMUtils } = ChromeUtils.import(
|
||||||
"resource://gre/modules/XPCOMUtils.jsm"
|
"resource://gre/modules/XPCOMUtils.jsm"
|
||||||
);
|
);
|
||||||
|
|
||||||
XPCOMUtils.defineLazyModuleGetters(this, {
|
XPCOMUtils.defineLazyModuleGetters(this, {
|
||||||
AppMenuNotifications: "resource://gre/modules/AppMenuNotifications.jsm",
|
AppMenuNotifications: "resource://gre/modules/AppMenuNotifications.jsm",
|
||||||
BrowserWindowTracker: "resource:///modules/BrowserWindowTracker.jsm",
|
BrowserWindowTracker: "resource:///modules/BrowserWindowTracker.jsm",
|
||||||
ProfileAge: "resource://gre/modules/ProfileAge.jsm",
|
|
||||||
Services: "resource://gre/modules/Services.jsm",
|
Services: "resource://gre/modules/Services.jsm",
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
@ -108,19 +106,6 @@ this.experiments_urlbar = class extends ExtensionAPI {
|
||||||
let errorCode = update ? update.errorCode : 0;
|
let errorCode = update ? update.errorCode : 0;
|
||||||
return updateStateIs("pending") && errorCode != 0;
|
return updateStateIs("pending") && errorCode != 0;
|
||||||
},
|
},
|
||||||
|
|
||||||
async lastBrowserUpdateDate() {
|
|
||||||
// Get the newest update in the update history. This isn't perfect
|
|
||||||
// because these dates are when updates are applied, not when the
|
|
||||||
// user restarts with the update. See bug 1595328.
|
|
||||||
if (updateManager.updateCount) {
|
|
||||||
let update = updateManager.getUpdateAt(0);
|
|
||||||
return update.installDate;
|
|
||||||
}
|
|
||||||
// Fall back to the profile age.
|
|
||||||
let age = await ProfileAge();
|
|
||||||
return (await age.firstUse) || age.created;
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -11,4 +11,3 @@ support-files =
|
||||||
|
|
||||||
[browser_ext_urlbar_isBrowserShowingNotification.js]
|
[browser_ext_urlbar_isBrowserShowingNotification.js]
|
||||||
[browser_ext_urlbar_isBrowserUpdateReadyToInstall.js]
|
[browser_ext_urlbar_isBrowserUpdateReadyToInstall.js]
|
||||||
[browser_ext_urlbar_lastBrowserUpdateDate.js]
|
|
||||||
|
|
|
||||||
|
|
@ -1,131 +0,0 @@
|
||||||
/* Any copyright is dedicated to the Public Domain.
|
|
||||||
* http://creativecommons.org/publicdomain/zero/1.0/ */
|
|
||||||
|
|
||||||
/* global browser */
|
|
||||||
|
|
||||||
// This tests the browser.experiments.urlbar.lastBrowserUpdateDate WebExtension
|
|
||||||
// Experiment API. The parts related to the updates.xml file are adapted from
|
|
||||||
// browser_policy_override_postupdatepage.js and other similar tests.
|
|
||||||
|
|
||||||
"use strict";
|
|
||||||
|
|
||||||
XPCOMUtils.defineLazyModuleGetters(this, {
|
|
||||||
ProfileAge: "resource://gre/modules/ProfileAge.jsm",
|
|
||||||
});
|
|
||||||
|
|
||||||
XPCOMUtils.defineLazyServiceGetter(
|
|
||||||
this,
|
|
||||||
"updateManager",
|
|
||||||
"@mozilla.org/updates/update-manager;1",
|
|
||||||
"nsIUpdateManager"
|
|
||||||
);
|
|
||||||
|
|
||||||
const DATE_MS = 1368255600000;
|
|
||||||
|
|
||||||
add_task(async function setUp() {
|
|
||||||
let originalTimes = (await ProfileAge())._times;
|
|
||||||
registerCleanupFunction(async () => {
|
|
||||||
removeUpdatesFile();
|
|
||||||
let age = await ProfileAge();
|
|
||||||
age._times = originalTimes;
|
|
||||||
await age.writeTimes();
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
// no update history, same profile created and first-use date
|
|
||||||
add_task(async function noHistory_sameCreateAndFirstUse() {
|
|
||||||
removeUpdatesFile();
|
|
||||||
reloadUpdateManagerData();
|
|
||||||
Assert.equal(updateManager.updateCount, 0);
|
|
||||||
await updateProfileAge(DATE_MS, DATE_MS);
|
|
||||||
await checkExtension(DATE_MS);
|
|
||||||
});
|
|
||||||
|
|
||||||
// no update history, different profile created and first-use dates
|
|
||||||
add_task(async function noHistory_differentCreateAndFirstUse() {
|
|
||||||
removeUpdatesFile();
|
|
||||||
reloadUpdateManagerData();
|
|
||||||
Assert.equal(updateManager.updateCount, 0);
|
|
||||||
await updateProfileAge(DATE_MS - 30000, DATE_MS);
|
|
||||||
await checkExtension(DATE_MS);
|
|
||||||
});
|
|
||||||
|
|
||||||
// update history
|
|
||||||
add_task(async function history() {
|
|
||||||
removeUpdatesFile();
|
|
||||||
writeUpdatesFile(DATE_MS);
|
|
||||||
reloadUpdateManagerData();
|
|
||||||
Assert.equal(updateManager.updateCount, 1);
|
|
||||||
await updateProfileAge(DATE_MS - 60000, DATE_MS - 30000);
|
|
||||||
await checkExtension(DATE_MS);
|
|
||||||
});
|
|
||||||
|
|
||||||
async function checkExtension(expectedDate) {
|
|
||||||
let ext = await loadExtension(async () => {
|
|
||||||
let date = await browser.experiments.urlbar.lastBrowserUpdateDate();
|
|
||||||
browser.test.sendMessage("date", date);
|
|
||||||
});
|
|
||||||
let date = await ext.awaitMessage("date");
|
|
||||||
Assert.equal(date, expectedDate);
|
|
||||||
await ext.unload();
|
|
||||||
}
|
|
||||||
|
|
||||||
function getUpdatesFile() {
|
|
||||||
let updateRootDir = Services.dirsvc.get("UpdRootD", Ci.nsIFile);
|
|
||||||
let updatesFile = updateRootDir.clone();
|
|
||||||
updatesFile.append("updates.xml");
|
|
||||||
return updatesFile;
|
|
||||||
}
|
|
||||||
|
|
||||||
function removeUpdatesFile() {
|
|
||||||
try {
|
|
||||||
getUpdatesFile().remove(false);
|
|
||||||
} catch (e) {}
|
|
||||||
}
|
|
||||||
|
|
||||||
function reloadUpdateManagerData() {
|
|
||||||
updateManager
|
|
||||||
.QueryInterface(Ci.nsIObserver)
|
|
||||||
.observe(null, "um-reload-update-data", "");
|
|
||||||
}
|
|
||||||
|
|
||||||
function getUpdatesXML(installDate) {
|
|
||||||
return `<?xml version="1.0"?>
|
|
||||||
<updates xmlns="http://www.mozilla.org/2005/app-update">
|
|
||||||
<update appVersion="1.0" buildID="20080811053724" channel="nightly"
|
|
||||||
displayVersion="Version 1.0" installDate="${installDate}"
|
|
||||||
isCompleteUpdate="true" name="Update Test 1.0" type="minor"
|
|
||||||
detailsURL="http://example.com/" previousAppVersion="1.0"
|
|
||||||
serviceURL="https://example.com/"
|
|
||||||
statusText="The Update was successfully installed"
|
|
||||||
foregroundDownload="true">
|
|
||||||
<patch type="complete" URL="http://example.com/" size="775"
|
|
||||||
selected="true" state="succeeded"/>
|
|
||||||
</update>
|
|
||||||
</updates>`;
|
|
||||||
}
|
|
||||||
|
|
||||||
function writeUpdatesFile(installDate) {
|
|
||||||
const PERMS_FILE = 0o644;
|
|
||||||
const MODE_WRONLY = 0x02;
|
|
||||||
const MODE_CREATE = 0x08;
|
|
||||||
const MODE_TRUNCATE = 0x20;
|
|
||||||
let file = getUpdatesFile();
|
|
||||||
if (!file.exists()) {
|
|
||||||
file.create(Ci.nsIFile.NORMAL_FILE_TYPE, PERMS_FILE);
|
|
||||||
}
|
|
||||||
let fos = Cc["@mozilla.org/network/file-output-stream;1"].createInstance(
|
|
||||||
Ci.nsIFileOutputStream
|
|
||||||
);
|
|
||||||
let flags = MODE_WRONLY | MODE_CREATE | MODE_TRUNCATE;
|
|
||||||
fos.init(file, flags, PERMS_FILE, 0);
|
|
||||||
let xml = getUpdatesXML(installDate);
|
|
||||||
fos.write(xml, xml.length);
|
|
||||||
fos.close();
|
|
||||||
}
|
|
||||||
|
|
||||||
async function updateProfileAge(created, firstUse) {
|
|
||||||
let age = await ProfileAge();
|
|
||||||
age._times = { created, firstUse };
|
|
||||||
await age.writeTimes();
|
|
||||||
}
|
|
||||||
|
|
@ -16,13 +16,6 @@
|
||||||
"async": true,
|
"async": true,
|
||||||
"description": "Returns true if there is an update ready to install.",
|
"description": "Returns true if there is an update ready to install.",
|
||||||
"parameters": []
|
"parameters": []
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "lastBrowserUpdateDate",
|
|
||||||
"type": "function",
|
|
||||||
"async": true,
|
|
||||||
"description": "Returns the date of the last browser update. If there's no update history, then the date the profile was first used is returned instead. The return value is milliseconds since 1 January 1970 UTC (i.e., suitable for passing to <code>new Date()</code>).",
|
|
||||||
"parameters": []
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue