Hixie asked for a concrete example of page that breaks if click() limit is removed so here is one:

1. Go to http://forums.whirlpool.net.au/
2. Under Whirlpool (righthand side) go to 'Feedback Forum'
3. Click on any Forum
4. Click reply to this post (righthand) side
5. Login (you need to create an account)
6. Click 'Show quoted' box

Without click() protection the last step hangs the browser (at least until javascript time limit kicks in). Script is sufficiently complex and slow to execute that it won't hit javascript stack limit. I tried having a minimum nesting limit that passes Acid3 (10 iterations) and that too produces a noticeable ~1s pause. On mobile class hardware that would be a complete hang.


  antti


On 14.3.2008, at 11:04, Erik Arvidsson wrote:

To me it just seems wrong to prevent this.  This is in theory no
different than a recursive call and just like recursion it can end up
in an infinite loop.  Having a limit seems OK since most JavaScript
engines already have a limit on the size of the call stack.

On Mon, Mar 10, 2008 at 11:54, Anne van Kesteren <[EMAIL PROTECTED]> wrote:
On Mon, 10 Mar 2008 19:49:21 +0100, Antti Koivisto <[EMAIL PROTECTED]> wrote:

WebKit, Firefox and IE all implement a protection mechanism against
re-entering click() on the same element:

<input type="checkbox" onclick="this.click()">


Opera had the same restriction. We now limit it at 50 or so... I think
we're fine either way though.


--
Anne van Kesteren
<http://annevankesteren.nl/>
<http://www.opera.com/>




--
erik

Reply via email to