diff options
author | Rogan Creswick <creswick@gmail.com> | 2013-06-14 16:24:52 -0700 |
---|---|---|
committer | Rogan Creswick <creswick@gmail.com> | 2013-06-14 16:24:52 -0700 |
commit | 2c3b25addc2bc8b1cb91eb6e708119ea47379e68 (patch) | |
tree | c689287dab1afec4d352e36413b3c032557d59fa /src/js/fiveui/injected | |
parent | f8c37c2ca06b3185ce988b6fd3552f0ea2ea27fa (diff) |
added upgoerfive rule
Diffstat (limited to 'src/js/fiveui/injected')
-rw-r--r-- | src/js/fiveui/injected/compute.js | 24 |
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(){' |