aboutsummaryrefslogtreecommitdiff
path: root/src/js/fiveui/injected
diff options
context:
space:
mode:
authorGravatar Rogan Creswick <creswick@gmail.com>2013-06-14 16:24:52 -0700
committerGravatar Rogan Creswick <creswick@gmail.com>2013-06-14 16:24:52 -0700
commit2c3b25addc2bc8b1cb91eb6e708119ea47379e68 (patch)
treec689287dab1afec4d352e36413b3c032557d59fa /src/js/fiveui/injected
parentf8c37c2ca06b3185ce988b6fd3552f0ea2ea27fa (diff)
added upgoerfive rule
Diffstat (limited to 'src/js/fiveui/injected')
-rw-r--r--src/js/fiveui/injected/compute.js24
1 files changed, 21 insertions, 3 deletions
diff --git a/src/js/fiveui/injected/compute.js b/src/js/fiveui/injected/compute.js
index 67f2d56..a796558 100644
--- a/src/js/fiveui/injected/compute.js
+++ b/src/js/fiveui/injected/compute.js
@@ -35,6 +35,11 @@
core.port = obtainComputePort();
/**
+ * Whether rules are being currently executed.
+ */
+ core.rulesRunning = false;
+
+ /**
* Whether or not rules are fired when a dom change is detected.
*/
core.maskRules = false;
@@ -123,7 +128,7 @@
return "";
}
- return nodeParents(node) + node.id + node.tagName;
+ return nodeParents(node) + node.id + node.tagName + core.getElementXPath(node);
};
var str = prob.name + prob.descr + prob.url + prob.severity
@@ -231,6 +236,7 @@
}
};
+ core.rulesRunning = true;
for(var i=0; i<rs.length; ++i) {
theRule = rs[i];
@@ -245,6 +251,7 @@
stats.numRules += 1;
}
}
+ core.rulesRunning = false;
date = new Date();
stats.end = date.getTime();
@@ -271,7 +278,7 @@
};
var handleDOMEvent = function(e){
- if ( !uicAttrEvent(e.target) && !underFiveUI(e.target) ) {
+ if (!core.rulesRunning && !uicAttrEvent(e.target) && !underFiveUI(e.target) ) {
core.scheduleRules();
}
};
@@ -298,9 +305,20 @@
};
var registerBackendListeners = function(port) {
- var assembleRules = function(ruleStrList) {
+ var assembleRules = function(ruleDescr) {
var ruleList = [];
+ _.each(ruleDescr.dependencies,
+ function(dep){
+ try {
+ eval(dep.content);
+ } catch (x) {
+ console.error('Could not evaluate rule dependency: ' + dep.url);
+ console.error(x);
+ }
+ });
+
+ var ruleStrList = ruleDescr.rules;
for(var i=0; i<ruleStrList.length; ++i) {
var moduleStr =
[ '(function(){'