Summary: | test case with click handler that calls click() loops forever in WebKit, but not in Firefox | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Product: | WebKit | Reporter: | Sornalatha Rathnasamy <sornalatha.rathnasamy> | ||||||||
Component: | WebCore Misc. | Assignee: | Nobody <webkit-unassigned> | ||||||||
Status: | RESOLVED WORKSFORME | ||||||||||
Severity: | Normal | CC: | ian | ||||||||
Priority: | P2 | ||||||||||
Version: | 420+ | ||||||||||
Hardware: | PC | ||||||||||
OS: | OS X 10.4 | ||||||||||
Attachments: |
|
Description
Sornalatha Rathnasamy
2006-06-01 13:04:56 PDT
Created attachment 8650 [details]
test case
Created attachment 8935 [details]
patch for fixing the bug
Created attachment 8936 [details]
patch for fixing the bug
Comment on attachment 8935 [details]
patch for fixing the bug
Duplicate copy of patch. Removing it.
Comment on attachment 8936 [details]
patch for fixing the bug
This patch won't work, because it's got DOM:: and Undefined() in it. Those are long-renaemed things that don't exist in our current tip of tree.
It's also not formatted based on the style guildlines.
In addition, I don't think this fix is correct. It checks for one of the many different ways an infiite loop could happen, and it could prevent legitimate code that loops once from working. There are all sorts of other similar infinite loops that this code change would not prevent, for example, one involving two different events that each dispatched the other.
What we need to diagnose this is a test page that works in other browsers and fails in WebKit so we can figure out what behavior is wrong. I'm absolutely certain this isn't it.
Infinite loops can happen, and the way to handle that is to allow you to interrupt the script.
We should figure out what's different that prevents this from being an infinite loop in Firefox. It's possible that the click() function in Firefox is a no op if you're already inside another invocation of click(), which could explain why Firefox goes through the loop twice, but not more than twice. |