Closed Bug 843075 Opened 12 years ago Closed 12 years ago

Firefox 19 fails to display Sudoku grids (regression)

Categories

(Core :: DOM: Core & HTML, defect)

19 Branch
x86_64
Windows 7
defect
Not set
normal

Tracking

()

RESOLVED WORKSFORME
Tracking Status
firefox18 --- unaffected
firefox19 - ---
firefox20 - ---
firefox21 - ---
firefox22 - ---

People

(Reporter: epinal99-bugzilla2, Unassigned)

References

Details

(Keywords: regression)

STR: Open these Sudoku websites: http://www.sudokuhints.com/fr/sudoku-medium.html or http://www.extremesudoku.info/sudoku.html Result: FF19 fails to load and display the blank Sudoku grid. Error console log: Error: TypeError: q2.frames.st.window is undefined Source File: http://www.extremesudoku.info/sudoku.js Line: 2 Regression range: m-c good=2012-10-15 bad=2012-10-16 http://hg.mozilla.org/mozilla-central/pushloghtml?fromchange=942ed5747b63&tochange=8f145599e4bf Reporter: http://forums.mozfr.org/viewtopic.php?p=722649#p722649
Regression window(cached m-i) Good: http://hg.mozilla.org/integration/mozilla-inbound/rev/224fddb79a38 Mozilla/5.0 (Windows NT 6.1; WOW64; rv:19.0) Gecko/19.0 Firefox/19.0 ID:20121015103548 Bad: http://hg.mozilla.org/integration/mozilla-inbound/rev/c350c6f28dd1 Mozilla/5.0 (Windows NT 6.1; WOW64; rv:19.0) Gecko/19.0 Firefox/19.0 ID:20121015110148 Pushlog: http://hg.mozilla.org/integration/mozilla-inbound/pushloghtml?fromchange=224fddb79a38&tochange=c350c6f28dd1 Triggered by: c350c6f28dd1 Boris Zbarsky — Bug 799875. Make the global scope polluter work even for qualified lookups. r=jst
Blocks: 799875
Component: Untriaged → DOM
Product: Firefox → Core
Ty for the reg range. :D
Hmm. So q2.frames.st is coming out as an HTMLIFrameElement with id="st". It used to come out as undefined in Firefox 18. The relevant script bit looks like this: if (j6.all) { p6 = j6.frames["st"].document.body } else if (q2.frames && q2.frames["st"]) { p6 = q2.frames["st"].window.document; x8 = 0 } else if (K("st")[j1]) { p6 = K("st")[j1].body } We used to fall into the last branch, but now we end up in the second one.
In Chrome, q2.frames.st seems to be the window inside the iframe. Also in Chrome q2.frames[2].name == "st" while for us it's blank. It looks like <iframe id="foo"> gives the window inside the name "foo" in WebKit. The spec says the browsing context name (which is what .name on the window gets) is set from the "name" attribute of <iframe>. The "id" attribute is not supposed to affect the browsing context name. So as I see our options are the following: 1) Back out bug 799875, reintroduce the difference for qualified access vs not somehow. 2) Make an id set the browsing context name, get the spec changed accordingly. Note that there's no guarantee that this will work, since the site sets p6 to the document, not the body, in that branch for some reason that presumably has to do with WebKit-onlyness. 3) Leave spec as-is, file a bug on WebKit to fix their <iframe id> handling, evangelize the site to fix their script. My personaly preference is for #3 given the evidence so far....
Oh, the WebKit bug on them not matching the spec seems to be https://bugs.webkit.org/show_bug.cgi?id=11388
Not enough user impact yet (a couple of small impacted sites) to track for release at this point.
Hmm. Have these sites been updated already? The bug doesn't seem to be present anymore, and http://www.extremesudoku.info/sudoku.js now looks like this: if (d8.all) { n6 = d8.frames["st"].document.body } else if (l5.frames && l5.frames["st"] && l5.frames["st"].window) { n6 = l5.frames["st"].window.document; e6 = 0 } else if (K("st")[s2]) { n6 = K("st")[s2].body } which is checking for .window before jumping, so should work again.
Flags: needinfo?(epinal99-bugzilla)
Yes, fixed on website side.
Status: NEW → RESOLVED
Closed: 12 years ago
Flags: needinfo?(epinal99-bugzilla)
Resolution: --- → WORKSFORME
Component: DOM → DOM: Core & HTML
You need to log in before you can comment on or make changes to this bug.