Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code

Side by Side Diff: chrome/content/ui/filters.js

Issue 5398934247702528: Filter Preferences: Template conditions not evaluating to a boolean are interpreted as true (Closed)
Patch Set: Created March 12, 2014, 10:43 a.m.
Left:
Right:
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * This file is part of Adblock Plus <http://adblockplus.org/>, 2 * This file is part of Adblock Plus <http://adblockplus.org/>,
3 * Copyright (C) 2006-2013 Eyeo GmbH 3 * Copyright (C) 2006-2013 Eyeo GmbH
4 * 4 *
5 * Adblock Plus is free software: you can redistribute it and/or modify 5 * Adblock Plus is free software: you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License version 3 as 6 * it under the terms of the GNU General Public License version 3 as
7 * published by the Free Software Foundation. 7 * published by the Free Software Foundation.
8 * 8 *
9 * Adblock Plus is distributed in the hope that it will be useful, 9 * Adblock Plus is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
(...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after
129 let nodeIterator = document.createNodeIterator(result, NodeFilter.SHOW_ELEME NT, null, false); 129 let nodeIterator = document.createNodeIterator(result, NodeFilter.SHOW_ELEME NT, null, false);
130 for (let node = nodeIterator.nextNode(); node; node = nodeIterator.nextNode( )) 130 for (let node = nodeIterator.nextNode(); node; node = nodeIterator.nextNode( ))
131 { 131 {
132 if (node.localName == "if") 132 if (node.localName == "if")
133 conditionals.push(node); 133 conditionals.push(node);
134 for (let i = 0; i < node.attributes.length; i++) 134 for (let i = 0; i < node.attributes.length; i++)
135 { 135 {
136 let attribute = node.attributes[i]; 136 let attribute = node.attributes[i];
137 let len = attribute.value.length; 137 let len = attribute.value.length;
138 if (len >= 2 && attribute.value[0] == "{" && attribute.value[len - 1] == "}") 138 if (len >= 2 && attribute.value[0] == "{" && attribute.value[len - 1] == "}")
139 attribute.value = Cu.evalInSandbox(attribute.value.substr(1, len - 2), sandbox); 139 {
140 let value = Cu.evalInSandbox(attribute.value.substr(1, len - 2), sandb ox);
141 if (attribute.name == "condition")
142 value = value ? "true" : "false";
143 attribute.value = value;
144 }
140 } 145 }
141 } 146 }
142 147
143 // Process <if> tags - remove if condition is false, replace by their childr en 148 // Process <if> tags - remove if condition is false, replace by their childr en
144 // if it is true 149 // if it is true
145 for each (let node in conditionals) 150 for each (let node in conditionals)
146 { 151 {
147 let fragment = document.createDocumentFragment(); 152 let fragment = document.createDocumentFragment();
148 let condition = node.getAttribute("condition"); 153 let condition = node.getAttribute("condition");
149 if (condition == "false") 154 if (condition == "false")
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
212 * data object. 217 * data object.
213 */ 218 */
214 getNodeForData: function(/**Node*/ parent, /**String*/ property, /**Object*/ d ata) /**Node*/ 219 getNodeForData: function(/**Node*/ parent, /**String*/ property, /**Object*/ d ata) /**Node*/
215 { 220 {
216 for (let child = parent.firstChild; child; child = child.nextSibling) 221 for (let child = parent.firstChild; child; child = child.nextSibling)
217 if ("_data" in child && property in child._data && child._data[property] = = data) 222 if ("_data" in child && property in child._data && child._data[property] = = data)
218 return child; 223 return child;
219 return null; 224 return null;
220 } 225 }
221 }; 226 };
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld