News for hackers. Stuff that matters.
Re:This will crash your browser. by lutusp on Tuesday September 10, 2013 @04:16AM (#6358818)
You really want to post a link that locks up people's browsers? I can think of a dozen ways to do this, but why would I inconvenience people just to show off a trivial self-evident fact?

And "crash" is an exaggeration. The browser is prevented from functioning until it figures out that its processing power is being absorbed in something pointless, for example by badly written JavaScript:

    function loop_forever() {
      while(true) {
      }
    }
A modern browser assigns a thread to each process and monitors each thread, so it can act to stop unresponsive threads. That's what happens in this case. It's not a "crash", unless bringing a car to a safe stop at a red light counts as a crash.
Re:This will crash your browser. by fooyc on Tuesday September 10, 2013 @04:34AM (#6358869)
After freezing for a few seconds it really crashed my Firefox, showing the crash reporting UI and everything. In chrome, the tab crashes too, but not the whole browser.

For those interested, the responsible code is located here:

dontclick://fiddle.jshell.net/n3Wa3/show/light/

And here is the code:

    <script>
    function Hackology()
    {
        var buffer = '\x42';
        for (i =0;i<666;i++)
        {
            buffer+=buffer+'\x42';
            document.write('<html><marquee><h1>'+buffer+buffer);
        }
    }
    </script>
Re:This will crash your browser. by deletes on Tuesday September 10, 2013 @04:47AM (#6358913)
Doesn't look very advanced. Maybe I'm missing something.
Re:This will crash your browser. by lutusp on Tuesday September 10, 2013 @04:52AM (#6358926)
Anyone who posts a link with the tag, "this will crash your browser" clearly isn't aiming very high, certainly not at "advanced".
Re:This will crash your browser. by cyphax on Tuesday September 10, 2013 @04:30AM (#6358857)
> A modern browser assigns a thread to each process and monitors each thread

That would be ideal, yes. Firefox still doesn't work this way, I think? Chrome (or rather: SRWare Iron in my case) does, though: this link, which I obviously had to click (I make no excuse :P) did crash the tab I opened it in, but it had zero influence on the rest of the tabs, or the interface in general.

Re:This will crash your browser. by lutusp on Tuesday September 10, 2013 @04:41AM (#6358888)
> That would be ideal, yes. Firefox still doesn't work this way, I think?

True. The current Firefox locks up, then announces a crash:

http://i.imgur.com/vgd8PLV.png

So on that basis, Firefox isn't a "modern browser". :)

Any JavaScript that hogs the thread it's running in will cause this kind of problem. If the thread happens to be the same one the browser is running under, then "crash" is a fair description.

Re:This will crash your browser. by sc2001 on Tuesday September 10, 2013 @05:16AM (#6358977)
Well, it certainly crashes on all my Windows flavors (XP, 7, 8x64). Firefox isn't exactly the poster child for stability, can't tell whether it ever was...
Re:This will crash your browser. by lutusp on Tuesday September 10, 2013 @06:30AM (#6359177)
Any browser that can be locked up by a bit of JavaScript that hogs the thread really needs to have NoScript enabled. The reason is there are too many easy ways to write a processor hog, either intentionally --

    function hog_processor() {
      while(true) {
      }
    } 
-- or unintentionally, by not knowing something about programming:

    function beginner_error_run_forever() {
      for(var x = 0;x != 10;x += .1) {
        // code here
      }
    }
Re:This will crash your browser. by sc2001 on Tuesday September 10, 2013 @09:02AM (#6359718)
You're right, but Today's World really relies on JavaScript and browsers development could, well, weigh it a bit more. Fighting on speed records might look good on browser's CV but for me personally doesn't matter zit - I'd take a stabler Firefox over a speedier one any second (I say this after 2 crashes today, on 2 different machines).
Re:This will crash your browser. by asadlionpk on Tuesday September 10, 2013 @05:59AM (#6359106)
its clearly mentioned that it will lock up your browser. If you had tabs open I am sorry for that but you would have given the title of this post some thought :)

the while(1); thing could be explained easily, but the code for this one (written below) is not simply an endless loop

Re:This will crash your browser. by lutusp on Tuesday September 10, 2013 @01:42PM (#6361584)
> ... the code for this one (written below) is not simply an endless loop

You may find this enlightening: Not only do nontrivial programs sometimes have unevaluated ways that will prevent their termination, but it's been proven that there cannot be a deterministic way to prove that a program will or will not terminate.

The Turing halting problem (will a given program terminate), and Godel's Incompleteness Theorems (nontrivial axiomatic systems can make true statements that cannot be proven), are connected -- each implies the other. And both have been shown to be more than educated guesses about reality.

Re:This will crash your browser. by nsxwolf on Tuesday September 10, 2013 @04:42AM (#6358894)
This crashed Safari, iOS 6.1, on iPad 4 in about 5 seconds.