885: IE 6 is hanging while clicking any button save -delete- the comment window
- WontFix
- Review Board
vanag******@gmai***** (Google Code) (Is this you? Claim this profile.) | |
Sept. 30, 2012 |
What's the URL of the page containing the problem? http://xscope.lss.emc.com/r/7/diff/#index_header What steps will reproduce the problem? 1. Open a Code review by somebody else. 2. Try to write a comment, try to save it, delete it 3. What is the expected output? What do you see instead? The comment window should save the comment and further operations should be allowed What operating system are you using? What browser? Please provide any additional information below.
I don't fully understand the repro case or which dialog you're talking about. Can you tell me what version is being used and go into this in more detail?
-
+ NeedInfo
Open a review using ie6 browser. Internet Explorer 6 on Windows XP. Click on View Diff. Click on a line number. Type in a comment. Hit save. Click on the same comment. Hit delete. The internet explorer browser hangs for a long time.
I am seeing the same issue with IE6, both with the latest development version 1.1 alpha2 or a previous version. In the best case, the comment window is truncated at the bottom. On the worst case (and most common), IE is not responsive at all, and takes 50% of the CPU (actually 100% of one CPU, has I have 2 CPUs on my Windows laptop). Is there anything I could do to help debug this problem?
The problem is, debugging anything on IE6 is really hard. The only way to do it sanely is with the Visual Studio integration. Even then, I'm not sure how best to go about debugging this, except to stop the script when it's spinning.
I think I found a recursion in iePNGFix() in http://demo.review-board.org/media/rb/js/pngfix.htc (thanks to MS Script Editor). setTimeout(function() { this.style.backgroundImage = '' }, 0) is triggerring a property change, calling iePNGFix() again, with: style.backgroundImage = 'url("' + blankImg + '")'; which is triggerring yet another property change, calling iePNGFix() again, ... These are the values of some interesting variables when I broke into the loop: currentStyle.backgroundImage "url(\"http://demo.review-board.org/media/rb/images/comment-draft.png\")" String style.backgroundImage "url(/media/rb/images/blank.gif)" String bgSrc "url(\"http://demo.review-board.org/media/rb/images/comment-draft.png\")" String - bgPNG {...} Object input "url(\"http://demo.review-board.org/media/rb/images/comment-draft.png\")" String index 0 Long lastIndex 69 Long [0] "url(\"http://demo.review-board.org/media/rb/images/comment-draft.png\")" String [1] "http://demo.review-board.org/media/rb/images/comment-draft.png" String
-
+ + +
I forgot to say that I could reproduce the issue using: http://demo.review-board.org/r/2643/diff/ for instance. Then hover over an existing comment and add a new comment on the same line. In IE 6, the loop occurs after the comment is saved - but not always. (With Firefox, I noticed there is a "Comment Saved" box showing up for a couple of seconds. I've never seen with IE.)
I just tried using http://demo.review-board.org/r/2643/diff/ and I still see the issue with IE. Looks like an infinite loop: > JScript - ms__id4 anonymous function JScript iePNGFix JScript JScript - ms__id4 anonymous function JScript iePNGFix JScript JScript - ms__id4 anonymous function JScript iePNGFix JScript JScript - ms__id4 anonymous function JScript iePNGFix JScript JScript - ms__id4 anonymous function JScript iePNGFix JScript JScript - ms__id4 anonymous function JScript iePNGFix JScript JScript - ms__id4 anonymous function JScript iePNGFix JScript JScript - ms__id4 anonymous function JScript iePNGFix JScript JScript - ms__id4 anonymous function JScript iePNGFix JScript JScript - ms__id4 anonymous function JScript iePNGFix JScript JScript - ms__id4 anonymous function JScript iePNGFix JScript JScript - ms__id4 anonymous function JScript iePNGFix JScript JScript - ms__id4 anonymous function JScript iePNGFix JScript JScript - ms__id4 anonymous function JScript iePNGFix JScript JScript - ms__id4 anonymous function JScript iePNGFix JScript JScript - ms__id4 anonymous function JScript iePNGFix JScript JScript - ms__id4 anonymous function JScript iePNGFix JScript JScript - ms__id4 anonymous function JScript iePNGFix JScript JScript - ms__id4 anonymous function JScript iePNGFix JScript JScript - ms__id4 anonymous function JScript iePNGFix JScript JScript - ms__id4 anonymous function JScript iePNGFix JScript JScript - ms__id4 anonymous function JScript iePNGFix JScript JScript - ms__id4 anonymous function JScript iePNGFix JScript JScript - ms__id4 anonymous function JScript iePNGFix JScript JScript - ms__id4 anonymous function JScript iePNGFix JScript JScript - ms__id4 anonymous function JScript iePNGFix JScript JScript - ms__id4 anonymous function JScript iePNGFix JScript JScript - ms__id4 anonymous function JScript iePNGFix JScript JScript - ms__id4 anonymous function JScript iePNGFix JScript JScript - ms__id4 anonymous function JScript iePNGFix JScript
I think the issue is around: var bgSrc = currentStyle.backgroundImage || style.backgroundImage; if ((bgSrc + this.src).indexOf(blank) == -1) { var bgPNG = bgSrc.match(/^url[("']+(.*\.png[^\)"']*)[\)"']+[^\)]*$/i); if (bgPNG) { style.backgroundImage = 'url("' + blankImg + '")'; this.src is undefined, while we would expect to see the value of style.backgroundImage after the second iteration, because of the property change triggered by style.backgroundImage = 'url("' + blankImg + '")'; This is the value of bgPNG: "url(\"http://demo.reviewboard.org/media/rb/images/comment-draft.png\")undefined"