A bit of code cleanup and a few comments. Not part of the default build.

git-svn-id: svn://10.0.0.236/trunk@245563 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
dbaron%dbaron.org 2008-02-13 09:45:54 +00:00
parent 2693ac1bde
commit f3c096b955

View File

@ -64,28 +64,16 @@ var SVG_NS = "http://www.w3.org/2000/svg";
var gPhases = null;
var gImage1 = null;
var gImage2 = null;
var gDiffRect = null;
var gImgControls = null;
var gFeImage1 = null;
var gFeImage2 = null;
var gSVG = null;
var gIDCache = {};
function ID(id) {
if (!(id in gIDCache))
gIDCache[id] = document.getElementById(id);
return gIDCache[id];
}
function load() {
gPhases = [
document.getElementById("entry"),
document.getElementById("loading"),
document.getElementById("viewer")
];
gImage1 = document.getElementById("image1");
gImage2 = document.getElementById("image2");
var feImages = document.getElementsByTagNameNS(SVG_NS, "feImage");
gFeImage1 = feImages[0];
gFeImage2 = feImages[1];
gDiffRect = document.getElementById("diffrect");
gImgControls = document.getElementById("imgcontrols");
gSVG = document.getElementById("svg");
gPhases = [ ID("entry"), ID("loading"), ID("viewer") ];
}
function show_phase(phaseid) {
@ -95,16 +83,19 @@ function show_phase(phaseid) {
}
if (phase == "viewer")
document.getElementById("images").style.display = "none";
ID("images").style.display = "none";
}
function fileentry_changed() {
show_phase("loading");
var input = document.getElementById("fileentry");
var input = ID("fileentry");
var files = input.files;
var log = null;
if (files.length > 0) {
// Only handle the first file; don't handle multiple selection.
// The parts of the log we care about are ASCII-only. Since we
// can ignore lines we don't care about, best to read in as
// iso-8859-1, which guarantees we don't get decoding errors.
log = files[0].getAsText("iso-8859-1");
}
// So the user can process the same filename again (after
@ -120,7 +111,7 @@ function fileentry_changed() {
function log_pasted() {
show_phase("loading");
var entry = document.getElementById("logentry");
var entry = ID("logentry");
var log = entry.value;
entry.value = "";
process_log(log);
@ -129,8 +120,6 @@ function log_pasted() {
var gTestItems;
function process_log(contents) {
document.getElementById("entry")
var lines = contents.split(/[\r\n]+/);
gTestItems = [];
for (var j in lines) {
@ -172,7 +161,7 @@ function build_viewer() {
return;
}
var cell = document.getElementById("itemlist");
var cell = ID("itemlist");
while (cell.childNodes.length > 0)
cell.removeChild(cell.childNodes[cell.childNodes.length - 1]);
@ -197,7 +186,9 @@ function build_viewer() {
td = document.createElement("td");
td.className = "url";
text = document.createTextNode(item.url);
// Only display part of URL after "/mozilla/".
var match = item.url.match(/\/mozilla\/(.*)/);
text = document.createTextNode(match ? match[1] : item.url);
if (item.images.length > 0) {
var a = document.createElement("a");
a.href = "javascript:show_images(" + i + ")";
@ -218,46 +209,47 @@ function build_viewer() {
function show_images(i) {
var item = gTestItems[i];
var cell = document.getElementById("images");
var cell = ID("images");
gImage1.style.display = "";
gImage2.style.display = "none";
gDiffRect.style.display = "none";
gImgControls.reset();
ID("image1").style.display = "";
ID("image2").style.display = "none";
ID("diffrect").style.display = "none";
ID("imgcontrols").reset();
gImage1.setAttributeNS(XLINK_NS, "xlink:href", item.images[0]);
ID("image1").setAttributeNS(XLINK_NS, "xlink:href", item.images[0]);
// Making the href be #image1 doesn't seem to work
gFeImage1.setAttributeNS(XLINK_NS, "xlink:href", item.images[0]);
ID("feimage1").setAttributeNS(XLINK_NS, "xlink:href", item.images[0]);
if (item.images.length == 1) {
gImgControls.style.display = "none";
ID("imgcontrols").style.display = "none";
} else {
gImgControls.style.display = "";
ID("imgcontrols").style.display = "";
gImage2.setAttributeNS(XLINK_NS, "xlink:href", item.images[1]);
ID("image2").setAttributeNS(XLINK_NS, "xlink:href", item.images[1]);
// Making the href be #image2 doesn't seem to work
gFeImage2.setAttributeNS(XLINK_NS, "xlink:href", item.images[1]);
ID("feimage2").setAttributeNS(XLINK_NS, "xlink:href", item.images[1]);
}
// Force reprocessing of the filters!
var p = gSVG.parentNode;
p.removeChild(gSVG);
p.appendChild(gSVG);
var svg = ID("svg");
var p = svg.parentNode;
p.removeChild(svg);
p.appendChild(svg);
cell.style.display = "";
}
function show_image(i) {
if (i == 1) {
gImage1.style.display = "";
gImage2.style.display = "none";
ID("image1").style.display = "";
ID("image2").style.display = "none";
} else {
gImage1.style.display = "none";
gImage2.style.display = "";
ID("image1").style.display = "none";
ID("image2").style.display = "";
}
}
function show_differences(cb) {
gDiffRect.style.display = cb.checked ? "" : "none";
ID("diffrect").style.display = cb.checked ? "" : "none";
}
]]></script>
@ -292,8 +284,8 @@ function show_differences(cb) {
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="800px" height="1000px" viewbox="0 0 800 1000" id="svg">
<defs>
<filter id="showDifferences" x="0%" y="0%" width="100%" height="100%">
<feImage result="img1" xlink:href="#image1" />
<feImage result="img2" xlink:href="#image2" />
<feImage id="feimage1" result="img1" xlink:href="#image1" />
<feImage id="feimage2" result="img2" xlink:href="#image2" />
<!-- inv1 and inv2 are the images with RGB inverted -->
<feComponentTransfer result="inv1" in="img1">
<feFuncR type="linear" slope="-1" intercept="1" />