mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
5067a66e67
Bug 646122: Holding on to Exception objects causes crash in garbage collector. r=dtownsend Bug 645092: Stop using [deprecated] Storage methods (testpilot). r=mfinkle DONTBUILD as it is NPOTB on m-c
269 lines
9.5 KiB
HTML
269 lines
9.5 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
|
|
<html> <head>
|
|
<title>Test Pilot Debug Page</title>
|
|
<script src="experiment-page.js" type="application/javascript;version=1.8"></script>
|
|
<script type="application/javascript;version=1.8">
|
|
|
|
function getEid() {
|
|
var selector = document.getElementById("task-selector");
|
|
var i = selector.selectedIndex;
|
|
return selector.options[i].getAttribute("value");
|
|
}
|
|
|
|
function setTaskStatus() {
|
|
Components.utils.import("resource://testpilot/modules/setup.js");
|
|
var newStatus = document.getElementById("status-code").value;
|
|
newStatus = parseInt(newStatus);
|
|
var task = TestPilotSetup.getTaskById(getEid());
|
|
task.changeStatus(newStatus, false);
|
|
}
|
|
|
|
function reloadAllExperiments() {
|
|
Components.utils.import("resource://testpilot/modules/setup.js");
|
|
TestPilotSetup.reloadRemoteExperiments(function(success) {
|
|
let errors = TestPilotSetup._remoteExperimentLoader.getLoadErrors();
|
|
let str;
|
|
if (errors.length > 0) {
|
|
str = "<ul>";
|
|
for each (let errStr in errors) {
|
|
str += "<li>" + errStr + "</li>";
|
|
}
|
|
str += "</ul>";
|
|
} else {
|
|
str = "All experiments reloaded, no errors.";
|
|
}
|
|
document.getElementById("debug").innerHTML = str;
|
|
});
|
|
}
|
|
|
|
function runUnitTests() {
|
|
Components.utils.import("resource://testpilot/tests/test_data_store.js");
|
|
runAllTests();
|
|
}
|
|
|
|
function testJarStore() {
|
|
var Cuddlefish = {};
|
|
Components.utils.import("resource://testpilot/modules/lib/cuddlefish.js",
|
|
Cuddlefish);
|
|
var loader = new Cuddlefish.Loader(
|
|
{rootPaths: ["resource://testpilot/modules/",
|
|
"resource://testpilot/modules/lib/"]});
|
|
var jarStoreModule = loader.require("jar-code-store");
|
|
var SecurableModule = loader.require("securable-module");
|
|
var jarStore = new jarStoreModule.JarStore();
|
|
|
|
// OK now watch this! It's gonna be awesome!
|
|
var clientLoader = Cuddlefish.Loader(
|
|
{fs: new SecurableModule.CompositeFileSystem(
|
|
[jarStore, loader.fs])});
|
|
dump("Debug page Requiring toolbar study.\n");
|
|
var toolbarStudy = clientLoader.require("toolbar-study");
|
|
|
|
}
|
|
|
|
function remindMe() {
|
|
Components.utils.import("resource://testpilot/modules/setup.js");
|
|
TestPilotSetup._notifyUserOfTasks();
|
|
//TestPilotSetup._doHousekeeping();
|
|
}
|
|
|
|
function getCodeStorage() {
|
|
Components.utils.import("resource://testpilot/modules/setup.js");
|
|
var loader = TestPilotSetup._remoteExperimentLoader;
|
|
return loader._jarStore;
|
|
}
|
|
|
|
function getSelectedFilename() {
|
|
var selector = document.getElementById("file-selector");
|
|
var i = selector.selectedIndex;
|
|
return selector.options[i].text;
|
|
}
|
|
|
|
function loadExperimentCode() {
|
|
var filename = getSelectedFilename();
|
|
var codeStore = getCodeStorage();
|
|
var textArea = document.getElementById("experiment-code-area");
|
|
var path = codeStore.resolveModule(null, filename);
|
|
code = codeStore.getFile(path).contents;
|
|
textArea.value = code;
|
|
}
|
|
|
|
function saveAndRun() {
|
|
var filename = getSelectedFilename();
|
|
var codeStore = getCodeStorage();
|
|
var path = codeStore.resolveModule(null, filename);
|
|
var textArea = document.getElementById("experiment-code-area");
|
|
codeStore.setLocalOverride(path, textArea.value);
|
|
reloadAllExperiments();
|
|
}
|
|
|
|
function showMetaData() {
|
|
Components.utils.import("resource://testpilot/modules/setup.js");
|
|
let task = TestPilotSetup.getTaskById(getEid());
|
|
let json = task._prependMetadataToJSON(function(json) {
|
|
document.getElementById("debug").innerHTML = json;
|
|
});
|
|
}
|
|
|
|
function makeThereBeAPopup() {
|
|
Components.utils.import("resource://testpilot/modules/setup.js");
|
|
var task = TestPilotSetup.getTaskById(getEid());
|
|
var text = "Sample popup for " + task.title;
|
|
TestPilotSetup._showNotification(task, false, text, "This is Title",
|
|
"", true, false, "Linktext",
|
|
"http://evilbrainjono.net");
|
|
}
|
|
|
|
function wipeDb() {
|
|
Components.utils.import("resource://testpilot/modules/setup.js");
|
|
var task = TestPilotSetup.getTaskById(getEid());
|
|
task.dataStore.wipeAllData();
|
|
var debug = document.getElementById("debug");
|
|
debug.innerHTML = "Wiped!";
|
|
}
|
|
|
|
function nukeDb() {
|
|
Components.utils.import("resource://testpilot/modules/setup.js");
|
|
var task = TestPilotSetup.getTaskById(getEid());
|
|
task.dataStore.nukeTable();
|
|
var debug = document.getElementById("debug");
|
|
debug.innerHTML = "Nuked!";
|
|
}
|
|
|
|
function populateFileDropdown() {
|
|
var codeStore = getCodeStorage();
|
|
var files = codeStore.listAllFiles();
|
|
var selector = document.getElementById("file-selector");
|
|
var opt, i;
|
|
for (var i = 0; i < files.length; i++) {
|
|
opt = document.createElement("option");
|
|
opt.innerHTML = files[i];
|
|
selector.appendChild(opt);
|
|
}
|
|
|
|
selector = document.getElementById("task-selector");
|
|
var tasks = TestPilotSetup.getAllTasks();
|
|
var title;
|
|
for (i = 0; i < tasks.length; i++) {
|
|
opt = document.createElement("option");
|
|
title = tasks[i].title;
|
|
opt.innerHTML = title;
|
|
opt.setAttribute("value", tasks[i].id);
|
|
selector.appendChild(opt);
|
|
}
|
|
}
|
|
|
|
function showSelectedTaskStatus() {
|
|
Components.utils.import("resource://testpilot/modules/setup.js");
|
|
var task = TestPilotSetup.getTaskById(getEid());
|
|
document.getElementById("show-status-span").innerHTML = task.status;
|
|
var selector = document.getElementById("status-selector");
|
|
selector.selectedIndex = task.status;
|
|
}
|
|
|
|
function resetSelectedTask() {
|
|
Components.utils.import("resource://testpilot/modules/setup.js");
|
|
var task = TestPilotSetup.getTaskById(getEid());
|
|
task.changeStatus(0, true);
|
|
var prefService = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch);
|
|
var prefName= "extensions.testpilot.startDate." + task.id;
|
|
if (prefService.prefHasUserValue(prefName)) {
|
|
prefService.clearUserPref(prefName);
|
|
}
|
|
//TestPilotSetup.reloadRemoteExperiments();
|
|
}
|
|
|
|
function setSelectedTaskStatus() {
|
|
Components.utils.import("resource://testpilot/modules/setup.js");
|
|
var task = TestPilotSetup.getTaskById(getEid());
|
|
|
|
var selector = document.getElementById("status-selector");
|
|
var i = selector.selectedIndex;
|
|
var newStatus = parseInt( selector.options[i].value );
|
|
task.changeStatus(newStatus, false);
|
|
}
|
|
|
|
function showIndexFileDropdown() {
|
|
var prefService = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch);
|
|
var prefName = "extensions.testpilot.indexFileName";
|
|
var selector = document.getElementById("index-file-selector");
|
|
if (prefService.getCharPref(prefName) == "index.json") {
|
|
selector.selectedIndex = 0;
|
|
} else {
|
|
selector.selectedIndex = 1;
|
|
}
|
|
}
|
|
|
|
function setSelectedIndexFile() {
|
|
var prefService = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch);
|
|
var prefName = "extensions.testpilot.indexFileName";
|
|
var selector = document.getElementById("index-file-selector");
|
|
var i = selector.selectedIndex;
|
|
prefService.setCharPref( prefName, selector.options[i].value );
|
|
|
|
// DELETE CACHED INDEX FILE
|
|
var file = Components.classes["@mozilla.org/file/directory_service;1"].
|
|
getService(Components.interfaces.nsIProperties).
|
|
get("ProfD", Components.interfaces.nsIFile);
|
|
file.append("TestPilotExperimentFiles");
|
|
file.append("index.json");
|
|
if (file.exists()) {
|
|
file.remove(false);
|
|
}
|
|
}
|
|
|
|
</script>
|
|
|
|
<style type="text/css">
|
|
canvas { border: 1px solid black; }
|
|
</style>
|
|
|
|
</head>
|
|
|
|
<body onload="populateFileDropdown();showSelectedTaskStatus();showIndexFileDropdown();">
|
|
|
|
<fieldset>
|
|
<p><select id="task-selector" onchange="showSelectedTaskStatus();"></select> Current Status = <span id="show-status-span"></span>.
|
|
<button onclick="resetSelectedTask();showSelectedTaskStatus();">Reset Task</button>
|
|
or set it to
|
|
<select id="status-selector" onchange="setSelectedTaskStatus(); showSelectedTaskStatus();">
|
|
<option value="0">0 (New)</option>
|
|
<option value="1">1 (Pending)</option>
|
|
<option value="2">2 (Starting)</option>
|
|
<option value="3">3 (In Progress)</option>
|
|
<option value="4">4 (Finished)</option>
|
|
<option value="5">5 (Cancelled)</option>
|
|
<option value="6">6 (Submitted)</option>
|
|
<option value="7">7 (Results)</option>
|
|
<option value="8">8 (Archived)</option>
|
|
</select>
|
|
<button onclick="wipeDb();">Wipe My Data</button>
|
|
<button onclick="nukeDb();">NUKE</button>
|
|
<button onclick="uploadData();">Upload My Data</button>
|
|
<button onclick="showMetaData();">Show Metadata</button>
|
|
<button onclick="runUnitTests();">Run Tests</button>
|
|
</fieldset>
|
|
<fieldset>
|
|
<p><button onclick="makeThereBeAPopup();">Show Dummy Popup</button>
|
|
<button onclick="reloadAllExperiments();">Reload All Experiments</button>
|
|
<button onclick="remindMe();">Notify Me</button>
|
|
<button onclick="testJarStore();">Test Jar Store</button>
|
|
Index file:
|
|
<select id="index-file-selector" onchange="setSelectedIndexFile();">
|
|
<option value="index.json">index.json</option>
|
|
<option value="index-dev.json">index-dev.json</option>
|
|
</select>
|
|
</p>
|
|
</fieldset>
|
|
<p><span id="debug"></span></p>
|
|
|
|
|
|
<textarea id="experiment-code-area" rows="40" cols="80">
|
|
</textarea>
|
|
<select id="file-selector"></select>
|
|
<button onclick="loadExperimentCode();">Load Ye Code</button>
|
|
<button onclick="saveAndRun();">Save And Run Ye Code</button>
|
|
|
|
|
|
</body> </html>
|