[Webkit-unassigned] [Bug 33668] WebCore::InsertListCommand::modifyRange infinite loop (100% CPU usage)

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Mon Jul 26 18:15:15 PDT 2010


https://bugs.webkit.org/show_bug.cgi?id=33668





--- Comment #16 from Ryosuke Niwa <rniwa at webkit.org>  2010-07-26 18:15:15 PST ---
Thanks for reviewing!

(In reply to comment #15)
> The old results for this test are clearly wrong and the new results for this test are wrong. But I worry that the new results are more wrong. I don't think you need to make this test match IE in this patch, but is there a way to avoid the infinite loop that doesn't change the results for this test?

Okay, the real fix for this problem is to save the selection range and if a list is contained within the range, then we convert the entire list.  We'll still need to walk through each paragraph after the conversion because inner lists still need to be converted. But I just think that's too much work / backlogging to fix this P1 bug.  This would work perfectly well for:

<ol>
<li>hello</li>
<ol>
<li>world</li>
</ol>
<li>webkit</li>
</ol>

An alternative work-around we can take is to merge the outer list when we've inserted a list child into an inner list, and the outer list solely consists of the inner list. But this is too gross to my taste and won't work for the above case for various reasons.

But I don't really see why this is more wrong than the original result.  The inner UL was inside the outer OL to begin with.  If we had only selected the inner UL, then we'll be only converting the inner list, leaving the outer OL intact.  And we always split the list and only convert the parts of lists that are selected.  That said, Firefox's behavior of converting all of OLs in the above HTML seems most reasonable to me.

-- 
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.



More information about the webkit-unassigned mailing list