4 ms·
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
by lutusp 13y ago
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.
- cyphax 13y ago> 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.
- lutusp 13y ago> 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 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.
- sc2001 13y agoWell, 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...
- lutusp 13y agoAny 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 } }
- sc2001 13y agoYou'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).
- fooyc 13y agoAfter 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>
- nsxwolf 13y agoThis crashed Safari, iOS 6.1, on iPad 4 in about 5 seconds.
- asadlionpk 13y agoits 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
- lutusp 13y ago> ... 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.