89 lines
2.3 KiB
JavaScript
89 lines
2.3 KiB
JavaScript
/**
|
|
* Any copyright is dedicated to the Public Domain.
|
|
* http://creativecommons.org/publicdomain/zero/1.0/
|
|
*/
|
|
|
|
loadScript("dom/quota/test/common/system.js");
|
|
|
|
function enableStorageTesting() {
|
|
Services.prefs.setBoolPref("dom.quotaManager.testing", true);
|
|
Services.prefs.setBoolPref("dom.simpleDB.enabled", true);
|
|
if (Services.appinfo.OS === "WINNT") {
|
|
Services.prefs.setBoolPref("dom.quotaManager.useDOSDevicePathSyntax", true);
|
|
}
|
|
}
|
|
|
|
function resetStorageTesting() {
|
|
Services.prefs.clearUserPref("dom.quotaManager.testing");
|
|
Services.prefs.clearUserPref("dom.simpleDB.enabled");
|
|
if (Services.appinfo.OS === "WINNT") {
|
|
Services.prefs.clearUserPref("dom.quotaManager.useDOSDevicePathSyntax");
|
|
}
|
|
}
|
|
|
|
function clear(callback) {
|
|
let request = Services.qms.clear();
|
|
request.callback = callback;
|
|
|
|
return request;
|
|
}
|
|
|
|
function reset(callback) {
|
|
let request = Services.qms.reset();
|
|
request.callback = callback;
|
|
|
|
return request;
|
|
}
|
|
|
|
function installPackage(packageRelativePath, allowFileOverwrites) {
|
|
let currentDir = Services.dirsvc.get("CurWorkD", Ci.nsIFile);
|
|
|
|
let packageFile = getRelativeFile(packageRelativePath + ".zip", currentDir);
|
|
|
|
let zipReader = Cc["@mozilla.org/libjar/zip-reader;1"].createInstance(
|
|
Ci.nsIZipReader
|
|
);
|
|
zipReader.open(packageFile);
|
|
|
|
let entryNames = Array.from(zipReader.findEntries(null));
|
|
entryNames.sort();
|
|
|
|
for (let entryName of entryNames) {
|
|
if (entryName.match(/^create_db\.(html|js)/)) {
|
|
continue;
|
|
}
|
|
|
|
let zipentry = zipReader.getEntry(entryName);
|
|
|
|
let file = getRelativeFile(entryName);
|
|
|
|
if (zipentry.isDirectory) {
|
|
if (!file.exists()) {
|
|
file.create(Ci.nsIFile.DIRECTORY_TYPE, parseInt("0755", 8));
|
|
}
|
|
} else {
|
|
if (!allowFileOverwrites && file.exists()) {
|
|
throw new Error("File already exists!");
|
|
}
|
|
|
|
let istream = zipReader.getInputStream(entryName);
|
|
|
|
var ostream = Cc[
|
|
"@mozilla.org/network/file-output-stream;1"
|
|
].createInstance(Ci.nsIFileOutputStream);
|
|
ostream.init(file, -1, parseInt("0644", 8), 0);
|
|
|
|
let bostream = Cc[
|
|
"@mozilla.org/network/buffered-output-stream;1"
|
|
].createInstance(Ci.nsIBufferedOutputStream);
|
|
bostream.init(ostream, 32768);
|
|
|
|
bostream.writeFrom(istream, istream.available());
|
|
|
|
istream.close();
|
|
bostream.close();
|
|
}
|
|
}
|
|
|
|
zipReader.close();
|
|
}
|