This is apparently affecting sites in the wild.
Tracking, but it'd be good to get more context of the sites that are affected by this bug. bug 648801 and bug 724033 didn't appear to have any pointers.
In our case, it was in an extension, and we got bitten by this in two different ways. First, we were trying to expose DOM elements from one origin to a sandbox with a different origin, using old code that iterated over an object with for(var i in obj) and created getters for the properties (from the days before JS proxy support). That got broken, but we should have switched to using proxies anyway and now we have. Second, we created new code that used for(var i in nodeList) to iterate over the nodes in a NodeList. This is the wrong way to do it, but it worked in Firefox 10. We then realized that this code broke under Firefox 9. The first case probably isn't a particularly big deal, since I doubt many other developers are affected. The second case is perhaps a bigger deal, since developers could end up writing code that won't work in later Firefox versions or in other browsers without noticing it.
Created attachment 595127 [details] [diff] [review] v1
[Triage Comment] Once landed on mozilla-central, if the patch is considered low-risk, please consider nominating for mozilla-aurora and mozilla-beta
I've sent email to Peter about whether we should consider landing on m-c uplifting to FF11.
Backed out due to browser-chrome tests failures. off-hand I'm not sure if it's fault of this patch or if the tests are relying on some wrong behavior that this patch fixes it's practically all newtab tests with failures similar to: TEST-UNEXPECTED-FAIL | chrome://mochitests/content/browser/browser/base/content/test/newtab/browser_newtab_block.js | an unexpected uncaught JS exception reported through window.onerror - this._node.addEventListener is not a function at chrome://browser/content/newtab/newTab.js:715 cc-int Tim who worked on newtab page.
The problem seems to be |let cells = [new Cell(this, child) for each (child in children)];| in newTab.js, with children a NodeList.
If I'm not mistaken that will create Cell objects for properties on the NodeList prototype, which doesn't seem what this code wants to do.
(In reply to Peter Van der Beken [:peterv] from comment #9) > The problem seems to be |let cells = [new Cell(this, child) for each (child > in children)];| in newTab.js, with children a NodeList. Yeah, silly mistake :/ Filed bug 730484 and attached a patch.
Peter, there is a reviewed patch ready for checkin attached to bug 730484. Do you want to land it together with the patch from this bug? I usually land patches on fx-team, so I have no inbound repo and figured you might not want to wait until that gets merged.
Comment on attachment 595127 [details] [diff] [review] v1 [Approval Request Comment] Regression caused by (bug #): 648801 User impact if declined: websites broken... Testing completed (on m-c, etc.): landed a couple of days ago Risk to taking this patch (and alternatives if risky): low risk String changes made by this patch: none I think this is something we could, and should, take on aurora. We have a duplicate already filed, and it's a very safe patch, low risk.
Comment on attachment 595127 [details] [diff] [review] v1 [Triage Comment] Approving for Aurora 12. Discussed the possibility of nominating for mozilla-beta with jst, but we feel it carries too much risk for our fifth beta.
Backed out on Aurora: https://hg.mozilla.org/releases/mozilla-aurora/rev/94f465b22c94 because of test failures: https://tbpl.mozilla.org/php/getParsedLog.php?id=9700459&tree=Mozilla-Aurora It looks like bug 730484 fixes these test failures. If appropriate, please request approval to land bug 730484 on Aurora, so the two patches can land together.
Is this something QA can verify?
Yes. There's a test in the patch you can verify with.
(In reply to Kyle Huey [:khuey] (email@example.com) from comment #21) > Yes. There's a test in the patch you can verify with. Can you give a little instruction about how to use the test in the patch?
Verified that the test from the patch is passing on all the OSs: https://tbpl.mozilla.org/php/getParsedLog.php?id=10987363&full=1&branch=mozilla-beta https://tbpl.mozilla.org/php/getParsedLog.php?id=10983991&full=1&branch=mozilla-beta https://tbpl.mozilla.org/php/getParsedLog.php?id=10984975&full=1&branch=mozilla-beta https://tbpl.mozilla.org/php/getParsedLog.php?id=10985051&full=1&branch=mozilla-beta
The test from the patch(test_bug691707.html) is also passing on Firefox 13 beta 1: https://tbpl.mozilla.org/php/getParsedLog.php?id=11207706&full=1&branch=mozilla-beta https://tbpl.mozilla.org/php/getParsedLog.php?id=11209241&full=1&branch=mozilla-beta https://tbpl.mozilla.org/php/getParsedLog.php?id=11212874&full=1&branch=mozilla-beta https://tbpl.mozilla.org/php/getParsedLog.php?id=11212766&full=1&branch=mozilla-beta