| Index: chrome/content/tests/elemhide.js | 
| =================================================================== | 
| --- a/chrome/content/tests/elemhide.js | 
| +++ b/chrome/content/tests/elemhide.js | 
| @@ -103,40 +103,34 @@ | 
| [["###test1", "~localhost#@##test1"], ["hidden", "visible"]], | 
| [["###test1", "#@##test1"], ["visible", "visible"]], | 
| [["localhost###test1", "#@##test1"], ["visible", "visible"]], | 
|  | 
| [["localhost.###test1"], ["visible", "visible"]], | 
| [["localhost.,localhost###test1"], ["hidden", "visible"]], | 
| [["localhost.,foo.###test1"], ["visible", "visible"]], | 
|  | 
| -    [["##div#test1", "@@localhost$generichide"], ["visible", "visible"]], | 
| -    [["##div#test1", "@@localhost$genericblock"], ["hidden", "visible"]], | 
| -    [["localhost##div#test1", "@@localhost$generichide"], ["hidden", "visible"]], | 
| -    [["~example.com##div#test1", "@@localhost$generichide"], ["visible", "visible"]], | 
| -    [["~example.com##div#test1", "@@localhost$genericblock"], ["hidden", "visible"]], | 
| -    [["~example.com,localhost##div#test1", "@@localhost$generichide"], ["hidden", "visible"]], | 
| +    [["###test1", "localhost###test2", "@@||localhost^$document"], ["visible", "visible"]], | 
| +    [["###test1", "localhost###test2", "@@||localhost^$~document"], ["hidden", "hidden"]], | 
| +    [["###test1", "localhost###test2", "@@||localhost^$elemhide"], ["visible", "visible"]], | 
| +    [["###test1", "localhost###test2", "@@||localhost^$~elemhide"], ["hidden", "hidden"]], | 
| + | 
| +    [["###test1", "@@||localhost^$generichide"], ["visible", "visible"]], | 
| +    [["###test1", "@@||localhost^$genericblock"], ["hidden", "visible"]], | 
| +    [["localhost###test1", "@@||localhost^$generichide"], ["hidden", "visible"]], | 
| +    [["~example.com###test1", "@@||localhost^$generichide"], ["visible", "visible"]], | 
| +    [["~example.com###test1", "@@||localhost^$genericblock"], ["hidden", "visible"]], | 
| +    [["~example.com,localhost###test1", "@@||localhost^$generichide"], ["hidden", "visible"]], | 
| ]; | 
|  | 
| -  function runTest([filters, expected], stage) | 
| +  function runTest(filters, expected) | 
| { | 
| for (let filterText of filters) | 
| FilterStorage.addFilter(Filter.fromText(filterText)); | 
|  | 
| -    if (stage == 2) | 
| -      FilterStorage.addFilter(Filter.fromText("@@||localhost^$document")); | 
| -    else if (stage == 3) | 
| -      FilterStorage.addFilter(Filter.fromText("@@||localhost^$~document")); | 
| -    else if (stage == 4) | 
| -      FilterStorage.addFilter(Filter.fromText("@@||localhost^$elemhide")); | 
| - | 
| -    // Second and forth runs are whitelisted, nothing should be hidden | 
| -    if (stage == 2 || stage == 4) | 
| -      expected = ["visible", "visible"]; | 
| - | 
| frame.addEventListener("abp:frameready", function() | 
| { | 
| let frameScript = ` | 
| // The "load" event doesn't mean that our styles are applied - these | 
| // are only applied after a message roundtrip to parent determining | 
| // whether element hiding is enabled. Do the same roundtrip here before | 
| // checking visibility to make sure timing is right. | 
| addMessageListener("pong", function() | 
| @@ -158,22 +152,11 @@ | 
|  | 
| start(); | 
| }); | 
| frame.messageManager.loadFrameScript("data:text/javascript," + encodeURIComponent(frameScript), false); | 
| }, false, true); | 
| frame.setAttribute("src", "http://localhost:1234/test"); | 
| } | 
|  | 
| -  let stageDescriptions = { | 
| -    1: "running without exceptions", | 
| -    2: "running with whitelisted document", | 
| -    3: "running with exception not applying to documents", | 
| -    4: "running with element hiding exception", | 
| -  }; | 
| - | 
| -  for (let test = 0; test < tests.length; test++) | 
| -  { | 
| -    let [filters, expected] = tests[test]; | 
| -    for (let stage = 1; stage in stageDescriptions; stage++) | 
| -      asyncTest(filters.join(", ") + " (" + stageDescriptions[stage] + ")", runTest.bind(null, tests[test], stage)); | 
| -  } | 
| +  for (let [filters, expected] of tests) | 
| +    asyncTest(filters.join(", "), runTest.bind(null, filters, expected)); | 
| })(); | 
|  |