I'm the author that discovered this bug - and went way out of my way to tell the Internet Explorer team about it. I uncovered the error while working on a client's SharePoint site and figuring out why a certain page always caused their computer to freeze up.
The most amazing part of this exercise has been analyzing the traffic trends. This page gets a crazy amount of traffic in Japan and China - I still can't figure out why.
It has also been a remarkable insight into the dysfunction that is Microsoft; I'll hear from some random Microsoft employee twice a year who became aware of the site and wants to fix it, after pointing to the closed "not a bug" thread on MSDN they all vanish (apparently keenly aware of how atrocious the IE team reacts to external interest/support.)
I don't even bother reporting bugs in IE anymore. They never fix them.
Yesterday I ran into errors "String is undefined" when trying to augment String.prototype. Testing for undefined got me "undefined is undefined". Turns out it was a variation of a known issue they deem so unlikely that they won't even bother to fix it. (The issue is this one: http://msdn.microsoft.com/en-us/library/gg622929%28v=VS.85%2... ) If anyone wants to know the fix: you have to set the innerHTML of the parent element of the iframe to '' before detaching that element from the DOM. That actually stops code inside the iframe from running.
What I also love is the arrogance with which they suggest solutions, like on the page I linked: "If your application uses a programming pattern that is affected by this issue, you may wish to consider not removing the iFrames from the page."
Its probably people trolling the internet users in those countries using an iframe because they couldn't replicate the crash or couldn't be bothered hosting it. Internet Explorer is still the main browser in China and Japan
I think the most shocking thing is when you follow it through to the MSDN bug discussion—and you find people blaming the author for writing invalid HTML.
This isn't a case of "Robustness principle". Not crashing on invalid input is just plain old decent programming, not to mention secure programming. Programs should not crash on invalid inputs, period. "Robustness" as in the robustness principle refers to trying to actually process invalid data and go make a guess at what the functionality should be.
In fact, you can make quite a case that "robustness" as defined that way is responsible for the horrible mess that HTML and cross-browser compatibility is these days. For instance, if you improperly close tags, or overlap tags, IE (and others I assume) will dutifully go about trying to figure out what you meant: being very "robust" in their interpretation of input outside the spec.
By implementing behaviour outside the spec (being "robust"), you are implicitly extending the spec, and every other browser has to implement unspecified behaviour in the same way.
Reminds me of one of my first jobs. I needed to convert some data into a odd file format based on 100 or so pages of documentation and upload it to an FTP. Problem was the first version I wrote caused their system to crash...
At uni in a software testing subject I was given an assignment to read various input files (some valid, some invalid). If your program crashes, you would get 0 marks. It made for a stressful assignment execution day, but it was a good lesson.
Obviously this is a bug in IE that needs to be fixed and it's Microsoft's responsibility to ensure that their browser doesn't crash in invalid input, but end users don't actually care about the browser either (they don't even know what a browser is), they care about your site crashing.
Not necessarily - I don't understand how software interacts with, for example, digital cable. I've seen certain channels crash my cable box before. It wouldn't be that surprising to see a certain show reliably crash the cable box.
Two characters are in a race: one to build an impervious record player, the other to design a record that - when played - sets up feedback in the record player sufficient to destroy it.
It's a stunningly simple intro to a fairly deep topic: NP completeness, input validation, etc.
"If your TV crashed would you blame the TV program you were watching at the time?"
I'm not positive, but I believe that it's possible for TV shows to crash TVs, which is why there are standards in that specify what kind of content you are allowed to broadcast:
I had an episode of a TV show on videotape that literally crashed my TV. I'm not kidding. Whenever the show got to a certain point the TV would turn off.
I'm 99% sure that it was something invalid in the closed captioning.
Back in 2000, I finally switched from Netscape to Internet Explorer because DoubleClick's JS hung Netscape. When a decent number of sites work in one browser but not the other, I go look for another browser.
I'd say that most do care about their browser. Chrome wouldn't have sped to such popularity otherwise, nor Firefox before it, nor Mozilla, nor... IE. If users didn't care we'd perhaps all still be using Mosaic.
One could make a good argument that Chrome was only adopted due to Google's popularity in the search space, and leveraging that to push messages along the lines of "Upgrade your browser".
Not that there's anything wrong with that, but I don't think Chrome would be anything near what it is today without all of the google.com referrals.
This is most likely true for Chrome yes, but it's almost definitely true for IE. I feel confident claiming that at the very least half of the IE users use it because they don't have a choice or because they got it as default on Windows.
I agree. There is no combination of text that should cause a browser to crash. Why the people in the discussion were blaming the HTML markup is beyond me.
Everyone create a script on all your websites that randomly implements this bug on some but not all pages (definitely not landing & home pages) then watch as little by little millions of users think their IE is broken and messed up and start using other browsers. A few sites alone wouldn't make a difference but over the course of its life even websites with normal amounts of traffic build up 30,000 unique visitors after a few years. Combined that would do some damage to IE's stability. Yes it's evil because you're deliberately crashing innocent people's browsers but aren't they evil/foolish for deliberately using IE and making us work harder to support it?
Sometimes users have to learn things the hard way.
I updated the page (which I hadn't touched since mid-2011) to say it doesn't crash the current RC of IE10. Hopefully people will stop flaming me on Twitter now...
I have made every browser crash and become completely non-responsive, many times over. Chrome. Firefox. Opera. All of them.
Now, this is mostly through JavaScript, when I do something stupid by manipulating the DOM the wrong way or some other funny thing. I fix it and keep going. Because breaking the browser is bad.
Want to report it to the vendor? Great. Fine. Making a website dedicated to the crash? Waaaay too much time on your hands.
I can say the same but there's a clear gap in how seriously the vendors take it: it's been a long time since I've crashed any browser other than IE. The closest I've come a couple of times was getting Firefox to use enough memory that I killed it rather than waiting for it to page.
If you are crashing them as often as you claim, you should be filing security bug reports - every other browser team will respond quickly to non-Flash crashes.
> I have made every browser crash and become completely non-responsive, many times over. Chrome. Firefox. Opera. All of them. Now, this is mostly through JavaScript, when I do something stupid by manipulating the DOM the wrong way or some other funny thing. I fix it and keep going. Because breaking the browser is bad.
We have a winner. Want browsers to play nice? Write good code.
I don't see why it's such a big deal. Ya I mean it's kind of a dumb thing to cause a browser to crash, but I am sure any browser has a dumb thing here or there that will cause a crash.
I'd agree. On a side note, took me about ten seconds of googling to find HTML/Javascript that reliably crashes firefox (but does not crash IE8). I expect Chrome would have similar cases where there could be something that causes crashes (at least, there are bug reports asserting this).
(FYI here's some HTML/JS for the Firefox bug... Resizing the browser caused the issue to manifest in Win7 with FF 13.0.1:)
Is this a big deal? It's amusing that it is such a simple chunk of HTML, but I was under the impression that it's not terribly difficult to DoS the average browser.
I accidentally discovered some very simple HTML that reliably crashes Outlook whenever you try to view or preview the message a while back. I reported it and I think they eventually fixed it.
> I reported it and I think they eventually fixed it.
If you follow through to the MSDN discussion, it is from 2009. So "eventually fixed it" could apply in this case, only because the timescale is unbounded, but waiting years for a fix seems unreasonable.
I don't know. Maybe Google is so good it's impossible (or at least limited to one tab). But I suspect it's still possible if I'm allowed to use commonly installed plugins. I think I could make a Java applet that consistently crashes.
Looks like the crash doesn't happen if you provide the </form> tag, so that looks like it.
Edit with more info: Looks like removing any of the markup prevents the crash. "Removing the CSS, the div, the table, etc all cause this code to not crash IE"
Removing the second td is enough to make the html not crashing on IE 9. The "crash" manifests itself in some kind of an infinite loop (one thread jumps to 100% CPU and stays so). Then the "recovery" mechanisms kick in, reloading the page, blocking again... :) Can anybody reduce it even more?
I have the same setup and clicked "recover" when the option came up, and it crashed the browser then. IE9 is still open, but the cursor is stuck on <--> and clicking anywhere does nothing. I don't even get the "this program has stopped responding" message.
Closing it in any of the normal ways is failing, I had to do end task.
Successive attempts to load the page don't even need for me to click anything for it to crash hard.
I can't be the only one that saw this, and immediately thought "Wrap this in some browser detection code, and display it in a tiny iframe if you're using an inferior browser..."
So that you can embed it in all of your pages secretly and get users to switch from IE to pretty much any other browser that actually follows web standards for implementation.
I accidentally created another bug that also crashes every single version of internet explorer. It's related to putting a filter: progID into an element modified by javascript.
It shouldn't. The record and record player was an analogy for statements and formal systems of sufficient complexity. This example would be analogous if html/css formed a Turing complete system, and the job of a browser was to decide whether or not the markup for a given page halted. This is just an example of a fixable bug with rejecting what should be obviously invalid input.
The corresponding analogy would be if the Crab's record player broke any time a particularly bad pop song came on. It could tell by looking at the song whether or not it would break, but the designers didn't bother to fix it because no one wants to listen to bad pop music anyway.
But what about the tension between features (completeness of system? Or ability to reproduce any sound?) and robustness (lack of contradictions? No sounds that would cause its own destruction?)
The analogy seems to fit there, enough to make me smile anyway :)
>This page crashes Internet Explorer, even version 9 and 10.
That headline sounds disingenuous and somewhat flamebaity given that 10 is still in development and the latest public version available on Windows 8 does not crash.
This is indeed shocking. I cannot recall a time in which I was subjected to using software which contained a bug. I sincerely hope this does not become a trend.
The most amazing part of this exercise has been analyzing the traffic trends. This page gets a crazy amount of traffic in Japan and China - I still can't figure out why.
It has also been a remarkable insight into the dysfunction that is Microsoft; I'll hear from some random Microsoft employee twice a year who became aware of the site and wants to fix it, after pointing to the closed "not a bug" thread on MSDN they all vanish (apparently keenly aware of how atrocious the IE team reacts to external interest/support.)