| Left: | ||
| Right: |
| LEFT | RIGHT |
|---|---|
| 1 (function() | 1 (function() |
| 2 { | 2 { |
| 3 let server = null; | 3 let server = null; |
| 4 let frame = null; | 4 let frame = null; |
| 5 | 5 |
| 6 module("Element hiding", { | 6 module("Element hiding", { |
| 7 setup: function() | 7 setup: function() |
| 8 { | 8 { |
| 9 prepareFilterComponents.call(this); | 9 prepareFilterComponents.call(this); |
| 10 preparePrefs.call(this); | 10 preparePrefs.call(this); |
| (...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 111 [["##div#test1", "@@localhost$generichide"], ["visible", "visible"]], | 111 [["##div#test1", "@@localhost$generichide"], ["visible", "visible"]], |
| 112 [["##div#test1", "@@localhost$genericblock"], ["hidden", "visible"]], | 112 [["##div#test1", "@@localhost$genericblock"], ["hidden", "visible"]], |
| 113 [["localhost##div#test1", "@@localhost$generichide"], ["hidden", "visible"]] , | 113 [["localhost##div#test1", "@@localhost$generichide"], ["hidden", "visible"]] , |
| 114 [["~example.com##div#test1", "@@localhost$generichide"], ["visible", "visibl e"]], | 114 [["~example.com##div#test1", "@@localhost$generichide"], ["visible", "visibl e"]], |
| 115 [["~example.com##div#test1", "@@localhost$genericblock"], ["hidden", "visibl e"]], | 115 [["~example.com##div#test1", "@@localhost$genericblock"], ["hidden", "visibl e"]], |
| 116 [["~example.com,localhost##div#test1", "@@localhost$generichide"], ["hidden" , "visible"]], | 116 [["~example.com,localhost##div#test1", "@@localhost$generichide"], ["hidden" , "visible"]], |
| 117 ]; | 117 ]; |
| 118 | 118 |
| 119 function runTest([filters, expected], stage) | 119 function runTest([filters, expected], stage) |
| 120 { | 120 { |
| 121 for (let filter_text of filters) | 121 for (let filterText of filters) |
|
kzar
2016/10/07 09:42:08
Nit: We usually use camelCase for variable names i
Wladimir Palant
2016/10/07 10:41:21
Done.
| |
| 122 FilterStorage.addFilter(Filter.fromText(filter_text)); | 122 FilterStorage.addFilter(Filter.fromText(filterText)); |
|
Wladimir Palant
2016/10/07 08:35:50
Rietveld doesn't show it because of whitespace cha
kzar
2016/10/07 09:42:08
Sounds good to me, in fact I wonder why didn't do
Wladimir Palant
2016/10/07 10:16:05
Because element hiding was applying in an async fa
kzar
2016/10/07 10:19:54
Acknowledged.
| |
| 123 | 123 |
| 124 if (stage == 2) | 124 if (stage == 2) |
| 125 FilterStorage.addFilter(Filter.fromText("@@||localhost^$document")); | 125 FilterStorage.addFilter(Filter.fromText("@@||localhost^$document")); |
| 126 else if (stage == 3) | 126 else if (stage == 3) |
| 127 FilterStorage.addFilter(Filter.fromText("@@||localhost^$~document")); | 127 FilterStorage.addFilter(Filter.fromText("@@||localhost^$~document")); |
| 128 else if (stage == 4) | 128 else if (stage == 4) |
| 129 FilterStorage.addFilter(Filter.fromText("@@||localhost^$elemhide")); | 129 FilterStorage.addFilter(Filter.fromText("@@||localhost^$elemhide")); |
| 130 | 130 |
| 131 // Second and forth runs are whitelisted, nothing should be hidden | |
| 131 if (stage == 2 || stage == 4) | 132 if (stage == 2 || stage == 4) |
| 132 expected = ["visible", "visible"]; // Second and forth runs are whitelis ted, nothing should be hidden | 133 expected = ["visible", "visible"]; |
|
kzar
2016/10/07 09:42:08
Nit: Mind moving the comment above the if statemen
Wladimir Palant
2016/10/07 10:16:05
Done.
| |
| 133 | 134 |
| 134 frame.addEventListener("abp:frameready", function() | 135 frame.addEventListener("abp:frameready", function() |
| 135 { | 136 { |
| 136 let frameScript = ` | 137 let frameScript = ` |
| 137 // The "load" event doesn't mean that our styles are applied - these | 138 // The "load" event doesn't mean that our styles are applied - these |
| 138 // are only applied after a message roundtrip to parent determining | 139 // are only applied after a message roundtrip to parent determining |
| 139 // whether element hiding is enabled. Do the same roundtrip here before | 140 // whether element hiding is enabled. Do the same roundtrip here before |
| 140 // checking visibility to make sure timing is right. | 141 // checking visibility to make sure timing is right. |
|
Wladimir Palant
2016/10/07 08:35:50
This comment changed - the reason why we need to p
kzar
2016/10/07 09:42:08
Acknowledged.
| |
| 141 addMessageListener("pong", function() | 142 addMessageListener("pong", function() |
| 142 { | 143 { |
| 143 let visibility = [ | 144 let visibility = [ |
| 144 content.document.getElementById("test1").offsetHeight > 0 ? "visible " : "hidden", | 145 content.document.getElementById("test1").offsetHeight > 0 ? "visible " : "hidden", |
| 145 content.document.getElementById("test2").offsetHeight > 0 ? "visible " : "hidden" | 146 content.document.getElementById("test2").offsetHeight > 0 ? "visible " : "hidden" |
| 146 ]; | 147 ]; |
| 147 sendAsyncMessage("visibility", visibility); | 148 sendAsyncMessage("visibility", visibility); |
| 148 }); | 149 }); |
| 149 sendAsyncMessage("ping"); | 150 sendAsyncMessage("ping"); |
| 150 `; | 151 `; |
| (...skipping 18 matching lines...) Expand all Loading... | |
| 169 4: "running with element hiding exception", | 170 4: "running with element hiding exception", |
| 170 }; | 171 }; |
| 171 | 172 |
| 172 for (let test = 0; test < tests.length; test++) | 173 for (let test = 0; test < tests.length; test++) |
| 173 { | 174 { |
| 174 let [filters, expected] = tests[test]; | 175 let [filters, expected] = tests[test]; |
| 175 for (let stage = 1; stage in stageDescriptions; stage++) | 176 for (let stage = 1; stage in stageDescriptions; stage++) |
| 176 asyncTest(filters.join(", ") + " (" + stageDescriptions[stage] + ")", runT est.bind(null, tests[test], stage)); | 177 asyncTest(filters.join(", ") + " (" + stageDescriptions[stage] + ")", runT est.bind(null, tests[test], stage)); |
| 177 } | 178 } |
| 178 })(); | 179 })(); |
| LEFT | RIGHT |