Update Several Files
This commit is contained in:
parent
de6bf545fd
commit
338bc3ed29
@ -2,7 +2,6 @@
|
|||||||
@author Ian Hickey, Rylan Doherty, David Westgate, William Jellesma, Peter Atashian
|
@author Ian Hickey, Rylan Doherty, David Westgate, William Jellesma, Peter Atashian
|
||||||
@fileOverview The event listener, event handler, script writer, and script executer functions of firerecord
|
@fileOverview The event listener, event handler, script writer, and script executer functions of firerecord
|
||||||
|
|
||||||
|
|
||||||
*/
|
*/
|
||||||
var recording2 = false;
|
var recording2 = false;
|
||||||
var path = null;
|
var path = null;
|
||||||
@ -11,11 +10,28 @@ var i = 0;
|
|||||||
var line1 = new Array();
|
var line1 = new Array();
|
||||||
var line2 = new Array();
|
var line2 = new Array();
|
||||||
var playThis;
|
var playThis;
|
||||||
|
var debugging = 0; //Turn on debugging by setting this to 1.
|
||||||
|
var lastPage = "";
|
||||||
|
/*
|
||||||
|
* debug handles displaying popups for additional info
|
||||||
|
* needed for debugging purposes.
|
||||||
|
* @arg debug string to display to in debug mode.
|
||||||
|
*/
|
||||||
|
var debug = function (debugString) {
|
||||||
|
if (this.debugging == 1) { alert(debugString) }
|
||||||
|
else { return 1; }
|
||||||
|
};
|
||||||
|
/*
|
||||||
|
* Handles calling the init function on each page load.
|
||||||
|
*/
|
||||||
window.addEventListener("load", function load(event) {
|
window.addEventListener("load", function load(event) {
|
||||||
window.removeEventListener("load", load, false);
|
window.removeEventListener("load", load, false);
|
||||||
firerecord.init();
|
firerecord.init();
|
||||||
}, false);
|
}, false);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Init checks that the dom is loaded an ready before calling run()
|
||||||
|
*/
|
||||||
var firerecord = function () {
|
var firerecord = function () {
|
||||||
var prefManager = Components.classes["@mozilla.org/preferences-service;1"]
|
var prefManager = Components.classes["@mozilla.org/preferences-service;1"]
|
||||||
.getService(Components.interfaces.nsIPrefBranch);
|
.getService(Components.interfaces.nsIPrefBranch);
|
||||||
@ -33,11 +49,11 @@ var firerecord = function () {
|
|||||||
running: function () {
|
running: function () {
|
||||||
if (recording2) {
|
if (recording2) {
|
||||||
recording2 = false;
|
recording2 = false;
|
||||||
alert("Stop Listen");
|
alert("Recording Completed.");
|
||||||
openUILinkIn(window.content.location.href, "current");
|
openUILinkIn(window.content.location.href, "current");
|
||||||
} else {
|
} else {
|
||||||
recording2 = true;
|
recording2 = true;
|
||||||
alert("Start Listen");
|
alert("Recording On.");
|
||||||
firerecord.run();
|
firerecord.run();
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -54,12 +70,15 @@ var firerecord = function () {
|
|||||||
*/
|
*/
|
||||||
checkpage: function () {
|
checkpage: function () {
|
||||||
page = window.content.location.href;
|
page = window.content.location.href;
|
||||||
if (page != line1)
|
if (page == lastPage) {
|
||||||
|
//do nothing
|
||||||
|
}
|
||||||
|
else if (page != line1) {
|
||||||
openUILinkIn(line1, "current");
|
openUILinkIn(line1, "current");
|
||||||
|
}
|
||||||
setTimeout(function () {
|
setTimeout(function () {
|
||||||
firerecord.fire();
|
firerecord.fire();
|
||||||
},5000);
|
}, 3000);//Change timeout to 3 seconds.
|
||||||
},
|
},
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -69,18 +88,26 @@ var firerecord = function () {
|
|||||||
i = 0;
|
i = 0;
|
||||||
playThis = io.getScript(path);
|
playThis = io.getScript(path);
|
||||||
line1 = playThis[0];
|
line1 = playThis[0];
|
||||||
|
debug("Line 1 == " + line1);
|
||||||
line2 = playThis[0 + 1].split(' :: ');
|
line2 = playThis[0 + 1].split(' :: ');
|
||||||
|
debug("Line 2 == " + line2);
|
||||||
|
//Keep a copy of the last address so we don't refresh the page in the middle of trying to login to a site etc.
|
||||||
|
lastPage = line1;
|
||||||
firerecord.checkpage();
|
firerecord.checkpage();
|
||||||
},
|
},
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@author Rylan
|
* This function
|
||||||
|
*@author Rylan
|
||||||
*/
|
*/
|
||||||
fire: function () {
|
fire: function () {
|
||||||
if (line2[0] == "key") {
|
if (line2[0] == "key") {
|
||||||
|
debug("Line2 does == [key]");
|
||||||
var obj = document.createEvent("KeyboardEvent");
|
var obj = document.createEvent("KeyboardEvent");
|
||||||
obj.initKeyEvent('keydown', true, true, window, false, false, false, false, 8, 0);
|
obj.initKeyEvent('keypress', true, true, window, false, false, false, false, 8, 0);
|
||||||
document.dispatchEvent(obj);
|
var keyResult = document.dispatchEvent(obj);
|
||||||
|
debug(keyResult); //Display true or false depending on if another obj has overriden and canceled this event.
|
||||||
|
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
var all = content.document.getElementsByTagName(line2[1]);
|
var all = content.document.getElementsByTagName(line2[1]);
|
||||||
@ -93,8 +120,7 @@ var firerecord = function () {
|
|||||||
searchCount = 3;
|
searchCount = 3;
|
||||||
var finding = false;
|
var finding = false;
|
||||||
while (searchCount < line2.length) {
|
while (searchCount < line2.length) {
|
||||||
if(elem[line2[searchCount]]==line2[searchCount+1])
|
if (elem[line2[searchCount]] == line2[searchCount + 1]) {
|
||||||
{
|
|
||||||
finding = true;
|
finding = true;
|
||||||
searchCount += 2;
|
searchCount += 2;
|
||||||
}
|
}
|
||||||
@ -107,7 +133,7 @@ var firerecord = function () {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (finding == false) {
|
if (finding == false) {
|
||||||
alert("Matching Element Not Found!");
|
debug("Matching Element Not Found!");
|
||||||
}
|
}
|
||||||
else if (line2[0] == "click") {
|
else if (line2[0] == "click") {
|
||||||
var obj = document.createEvent("MouseEvents");
|
var obj = document.createEvent("MouseEvents");
|
||||||
@ -122,7 +148,7 @@ var firerecord = function () {
|
|||||||
line2 = playThis[i + 1].split(' :: ');
|
line2 = playThis[i + 1].split(' :: ');
|
||||||
setTimeout(function () {
|
setTimeout(function () {
|
||||||
firerecord.checkpage()
|
firerecord.checkpage()
|
||||||
},5000);
|
}, 3000);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -151,12 +177,12 @@ var firerecord = function () {
|
|||||||
for (var i = 0; i < all.length; ++i) {
|
for (var i = 0; i < all.length; ++i) {
|
||||||
elm = all[i];
|
elm = all[i];
|
||||||
var validtags = ["A", "BUTTON", "FORM", "IMG", "INPUT",
|
var validtags = ["A", "BUTTON", "FORM", "IMG", "INPUT",
|
||||||
"LINK", "OPTION", "SELECT", "TABLE", "TEXTAREA" ];
|
"LINK", "OPTION", "SELECT", "SPAN", "TABLE", "TEXTAREA"];
|
||||||
info[0] = all[i].tagName;
|
info[0] = all[i].tagName;
|
||||||
if (validtags.indexOf(info[0]) == -1)
|
if (validtags.indexOf(info[0]) == -1)
|
||||||
continue;
|
continue;
|
||||||
else {
|
else {
|
||||||
if ( (elm.type == "text"||elm.type =="password") && info[0] == "INPUT"){
|
if ((elm.type == "text" || elm.type == "password") && info[0] == "INPUT" || elm.type == "submit" || elm.type == "email") {
|
||||||
elm.className += ((elm.className.length > 0) ? " " : "")
|
elm.className += ((elm.className.length > 0) ? " " : "")
|
||||||
+ "link-target-finder-selected";
|
+ "link-target-finder-selected";
|
||||||
elm.addEventListener("change", handleType, false);
|
elm.addEventListener("change", handleType, false);
|
||||||
@ -186,26 +212,51 @@ var firerecord = function () {
|
|||||||
} else if (e.srcElement) {
|
} else if (e.srcElement) {
|
||||||
targ = e.srcElement;
|
targ = e.srcElement;
|
||||||
}
|
}
|
||||||
var eleArray= ["href","name","id","type","value","form","length",
|
var eleArray = ["href", "name", "id", "type", "value",
|
||||||
"target","action","src","charset","text","index",
|
"form", "length", "target", "action",
|
||||||
"caption","size","summary"];
|
"src", "charset", "text", "index",
|
||||||
|
"caption", "selected", "size", "summary", "class"];
|
||||||
var validtags = ["A", "BUTTON", "FORM", "IMG", "INPUT",
|
var validtags = ["A", "BUTTON", "FORM", "IMG", "INPUT",
|
||||||
"LINK", "OPTION", "SELECT", "TABLE", "TEXTAREA" ];
|
"LINK", "OPTION", "SELECT", "SPAN", "TABLE", "EM", "TEXTAREA"];
|
||||||
var toWrite = new Array();
|
var toWrite = new Array();
|
||||||
toWrite[0] = "click";
|
toWrite[0] = "click";
|
||||||
toWrite[1] = targ.tagName;
|
toWrite[1] = targ.tagName;
|
||||||
var countWrite = 2;
|
var countWrite = 2;
|
||||||
var eleCount = 0;
|
var eleCount = 0;
|
||||||
var eleHolder;
|
var eleHolder;
|
||||||
if (validtags.indexOf(toWrite[1]) == -1)
|
|
||||||
{
|
|
||||||
|
|
||||||
|
if (validtags.indexOf(toWrite[1]) == -1) {
|
||||||
|
debug("No valid tags.");
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
while(eleCount<eleArray.length)
|
|
||||||
{
|
// If we are dealing with a span and can't find the href
|
||||||
|
// we need to look at the parent and get the link...
|
||||||
|
// Need to add img to this as well if the image has no href of its own...
|
||||||
|
if (toWrite[1] == "SPAN" || toWrite[1] == "EM") {
|
||||||
|
//Find parent.
|
||||||
|
debug("Finding Parent");
|
||||||
|
var targP = targ.parentElement;
|
||||||
|
//Loop through parents...
|
||||||
|
try {
|
||||||
|
if (targP.tagName != "A") {
|
||||||
|
//Try a second time...
|
||||||
|
targP = targP.parentElement;
|
||||||
|
}
|
||||||
|
} catch (e) {
|
||||||
|
debug("Couldn't find and parent with a link: " + e);
|
||||||
|
}
|
||||||
|
var targPtag = targP.tagName;
|
||||||
|
debug("Found " + targPtag);
|
||||||
|
toWrite[1] = targPtag;
|
||||||
|
targ = targP;
|
||||||
|
|
||||||
|
}
|
||||||
|
while (eleCount < eleArray.length) {
|
||||||
|
|
||||||
eleHolder = targ[eleArray[eleCount]];
|
eleHolder = targ[eleArray[eleCount]];
|
||||||
|
|
||||||
|
|
||||||
if (eleHolder) {
|
if (eleHolder) {
|
||||||
toWrite[countWrite] = eleArray[eleCount];
|
toWrite[countWrite] = eleArray[eleCount];
|
||||||
countWrite += 1;
|
countWrite += 1;
|
||||||
@ -217,7 +268,9 @@ var firerecord = function () {
|
|||||||
|
|
||||||
var contents = toWrite.join(' :: ') + "\n";
|
var contents = toWrite.join(' :: ') + "\n";
|
||||||
io.appendPath(path, window.content.location.href + "\n");
|
io.appendPath(path, window.content.location.href + "\n");
|
||||||
|
debug(window.content.location.href + "\n");
|
||||||
io.appendPath(path, contents);
|
io.appendPath(path, contents);
|
||||||
|
debug(contents);
|
||||||
e.cancelBubble = true;
|
e.cancelBubble = true;
|
||||||
toWrite = [];
|
toWrite = [];
|
||||||
}
|
}
|
||||||
@ -243,9 +296,9 @@ function handleType(e) {
|
|||||||
}
|
}
|
||||||
var eleArray = ["href", "name", "id", "type", "form", "length",
|
var eleArray = ["href", "name", "id", "type", "form", "length",
|
||||||
"target", "action", "src", "charset", "text", "index",
|
"target", "action", "src", "charset", "text", "index",
|
||||||
"caption","size","summary"];
|
"caption", "selected", "size", "summary", "class"];
|
||||||
var validtags = ["A", "BUTTON", "FORM", "IMG", "INPUT",
|
var validtags = ["A", "BUTTON", "FORM", "IMG", "INPUT",
|
||||||
"LINK", "OPTION", "SELECT", "TABLE", "TEXTAREA" ];
|
"LINK", "OPTION", "SELECT", "SPAN", "TABLE", "TEXTAREA"];
|
||||||
var toWrite = new Array();
|
var toWrite = new Array();
|
||||||
toWrite[0] = "type";
|
toWrite[0] = "type";
|
||||||
toWrite[1] = targ.tagName;
|
toWrite[1] = targ.tagName;
|
||||||
@ -253,13 +306,11 @@ function handleType(e) {
|
|||||||
var countWrite = 3;
|
var countWrite = 3;
|
||||||
var eleCount = 0;
|
var eleCount = 0;
|
||||||
var eleHolder;
|
var eleHolder;
|
||||||
if (validtags.indexOf(toWrite[1]) == -1)
|
if (validtags.indexOf(toWrite[1]) == -1) {
|
||||||
{
|
|
||||||
|
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
while(eleCount<eleArray.length)
|
while (eleCount < eleArray.length) {
|
||||||
{
|
|
||||||
eleHolder = targ[eleArray[eleCount]];
|
eleHolder = targ[eleArray[eleCount]];
|
||||||
if (eleHolder) {
|
if (eleHolder) {
|
||||||
toWrite[countWrite] = eleArray[eleCount];
|
toWrite[countWrite] = eleArray[eleCount];
|
||||||
@ -292,10 +343,9 @@ function handleKey(e){
|
|||||||
} else if (e.srcElement) {
|
} else if (e.srcElement) {
|
||||||
targ = e.srcElement;
|
targ = e.srcElement;
|
||||||
}
|
}
|
||||||
var validkeys = [13,9,32,27,8];
|
var validkeys = [13, 9];
|
||||||
var keyHit = e ? e.which : window.event.keyCode;
|
var keyHit = e ? e.which : window.event.keyCode;
|
||||||
if (validkeys.indexOf(keyHit) == -1)
|
if (validkeys.indexOf(keyHit) == -1) {
|
||||||
{
|
|
||||||
|
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
@ -309,16 +359,6 @@ function handleKey(e){
|
|||||||
else if (keyHit == 9) {
|
else if (keyHit == 9) {
|
||||||
toWrite[1] = "tab";
|
toWrite[1] = "tab";
|
||||||
}
|
}
|
||||||
else if(keyHit == 32){
|
|
||||||
toWrite[1] = "space";
|
|
||||||
}
|
|
||||||
else if(keyHit === 27){
|
|
||||||
toWrite[1] = "esc";
|
|
||||||
|
|
||||||
}
|
|
||||||
else if(keyHit == 8){
|
|
||||||
toWrite[1] = "backspace";
|
|
||||||
}
|
|
||||||
var contents = toWrite.join(' :: ') + "\n";
|
var contents = toWrite.join(' :: ') + "\n";
|
||||||
io.appendPath(path, window.content.location.href + "\n");
|
io.appendPath(path, window.content.location.href + "\n");
|
||||||
io.appendPath(path, contents);
|
io.appendPath(path, contents);
|
||||||
|
Reference in New Issue
Block a user