

A jQuery plugin for crashing IE6 - bensummers
http://plugins.jquery.com/project/crash

======
axod
Why must everything be a JQuery plugin for the love of god?

    
    
      function crashIE6() {
        for(x in document.open);
      }

~~~
erlanger
Because there's a body of misinformed devs who think jQuery's not JavaScript,
or that it's some route around having to learn JavaScript.

~~~
ewjordan
It depends what you mean - if you only mean "learn JavaScript" in the sense of
learning the language itself, then no, jQuery doesn't change a thing, you've
still got to figure out your way around the (rather minimalistic, esp. given
the lack of significant standard libraries) language.

But if you mean "learn JavaScript" in the pre-jQuery sense, then what you
really mean is "accumulate encyclopedic knowledge of all sorts of browser
dependent bullshit that constantly thwarts every attempt to write clean,
reusable code that actually works." In that case, jQuery (and other similar
libs, of course) really _does_ change the game. You can get pretty damn far
without ever knowing a thing about the various incompatibilities; this, IMO,
is one of the best things about the new sets of Javascript tools out there,
they really are starting to bring us towards the point where you can just
write clean code that does what it's supposed to, without working around bugs
(features?) in other people's code.

~~~
jluxenberg
Hmmm, then this plugin is broken because it doesn't crash any browser _except_
IE6!

------
akmiller
I honestly believe that too much is being made of the supposed work involved
in supporting IE6 theses days. Granted I would rather not have to support
older browsers for a number of reasons but the fact is that supporting it
hasn't been terribly difficult. With the javascript and css frameworks that
are available, compatibility is much less of an issue. We recently rebuilt our
site and had to include support for IE6. While developing the site we mainly
looked at IE8, Firefox 3.5, Safari 4, and Chrome. Only at the end did we look
at IE6 and I believe I had to create 1 stylesheet that has probably less than
30 lines of CSS to fix a few minor visual issues (mainly dealing with widths,
margins, and paddings). It took me less than a day. Yes I wish IE6 would fade
much faster than it seems to be but I think it is overblown on how hard it is
to support.

~~~
bensummers
Is this a web app or a static site?

If a static site, yes, it isn't too hard. But a web app is another matter all
together -- not only working around the issues but stopping you use features
that better browsers offer.

~~~
akmiller
It's a full blown web-app and it is the core of our business. It is also used
worldwide with one of our fastest growing user bases being China. In China, at
least for our app, IE6 and Maxthon (which like IE is based on Trident) are the
most popular browsers. I'm sure there may be features we will miss out on but
off the top of my head I can't think of anything that we couldn't accomplish.
Are there specific features you have in mind that are impossible in IE6?

~~~
bensummers
If you restrict yourself to the IE6 feature set, then yes, it should be
relatively easy. But if a complex web app is this easy, why is Google giving
up on it for it's web apps?

------
mmastrac
Here's another crash bug.

Just link the following URL as an image somewhere on a page (works on third-
party sites that pass image URLs directly to browsers):

<http://grack.com/crash.py>

There's a crash in IE's URL parser that takes down the browser if it attempts
to process this URL: "ms-its:%F0:". The above script returns an image to every
browser, but a Location: redirect to IE6. If a site doesn't proxy images for
its users, it'll send them to the link and take down the browser. Known by
Microsoft, doesn't require scripting, still unpatched.

Source, for anyone interested:

    
    
      #!/usr/bin/python
      # http://grack.com
      import os
      import sys
    
      if os.environ["HTTP_USER_AGENT"].find("MSIE 6.0") != -1:
            print "Content-Type: image/png"
            print "Location: ms-its:%F0:"
            print ""
      else:
            print "Content-Type: image/png"
            print ""
            print open("crash.png").read()

~~~
GrandMasterBirt
Awesome. I will use this image for profiles =)

Now all you need to do is create an argument to the url so that it takes
dimentions in case profiles have a dimention limitation. This way we can crash
IE on many sites all over the internets.

~~~
blasdel
If you can control the src attribute of an <img> element on someone else's
site where people use IE6, they're _way_ more fucked than just having their
browser crash.

In IE6, <img src=FOO> is a superset of <script src=FOO>. _Really._

------
joshfinnie
The unfortunate thing with this IE6 bashing is that not everyone can upgrade.
There are still people out there running legacy systems at their workplace. I,
for example, am still running IE6 due to it being the standar at work. Why
should I not be able to read websites?

Just don't style for IE6 anymore, there is no reason to make sure your website
won't work on IE6!

~~~
chime
For places like yours, what we need is a web-browser (probably Webkit/Gecko)
that works off a single executable, does not require installation, does not
need admin privileges, has no library files, no large caches, does not save to
registry, does not have addons, does not write anywhere except for a single
file in temp folder. It should check for an admin config file in a specific
read-only location and save user config/bookmarks to user's "Document &
Settings."

If such a browser existed and explicitly mentioned the above
restrictions/features, it would be trivial for most IT departments to put the
browsers's .Exe in a read-only network share and put an icon for it on every
user's desktop. The problem is that other than IE, every other browser is a
pain to setup on a Windows network. I have Chrome installed on a couple of
Terminal Servers and it took almost two full days to make it put the cache
files in the right places. And I had to write my own script to empty the cache
because there is no easy way to automate it. On the other hand, it is very
easy to deploy IE7/8 but since many intranet sites have been custom written
for IE6, it is not possible to upgrade to other versions of IE. Things break
and it's very costly to fix them. I've seen a $400k software system that only
works in IE6. The pages don't even load in IE7+ or other browsers. The upgrade
to a version that is IE7-compatible is $300k. So for the IT department, it's
either IE6 or $300k. Management does not care and should not care about IE6
working for all sites. They need IE6 to work on this expensive piece of
software that runs their business.

Despite what people here on HN say, IT departments don't mind users using
alternate browsers. Their problem is that Firefox, Chrome, Opera, and Safari
aren't easy or even possible to setup in a server environment like IE is.
Depending on which user belongs to which department and logs in from which
location, I can configure their IE to automatically set homepage, proxy
settings, privacy/cookie settings, and lots more. Forget features like these,
with other browsers, I don't even get to set the location of the config files
and cache folders. When you have 100 people logging on to a terminal server,
you need to be able to configure these things or the entire server goes down
because some user downloaded a partial 2GB file which is still in their cached
folder and now the server is trying to save it back to their user-profile
folder.

TL;DR version: Give me a browser that I can setup easily in corporate
environment and I will set it up.

~~~
warfangle
I'd say your company got gypped if they spent $400k on such a fragile piece of
software. What company produced this software, so the rest of us can steer
clear of their incompetence?

~~~
chime
It was not my company and I had nothing to do with the purchase of the
software. Also, if that $400k piece of software is unique and gives the
company a tremendous competitive advantage, who cares if it's only compatible
with Lynx? Not every app has to work everywhere. It has to be stable within
its own system requirements.

------
Luyt
The web was made for making information more accesible. Discriminating against
users of older browsers by crashing their software doesn't seem very
productive to me. And what if 10% of your visitors still use IE6? You're
basically giving them the finger and send them to your competitors.

PS. I'm all for newer, better browsers; I myself use FireFox. But content
should at least be _usable_ on every browser, that's more important than that
the site looks pixel-perfect in those older browsers.

~~~
chunkyslink
Its not just about being pixel perfect. IE6 will struggle with a heavily
javascript'd up web app.

Newer web apps rely heavily on javascript and css, and it might take you 20%
longer to make your site work for 5% of users. Its just not worth supporting
in my opinion as the time you spend on IE6, could be spent making much cooler
things for the newer browsers.

------
johns
Any site that uses this should be classified as malware. Is this really the
sort of relationship web developers want to have with users?

I hate IE6 as much as the next guy, but most people running it don't have the
choice. If you choose to be hostile to helpless users subject to poor
management, they're going to blame you and your site, not their browser.

~~~
chunkyslink
While I agree with most of what you are saying.

>> but most people running it don't have the choice

how do you know this ?

~~~
johns
I know from personal experience and previous threads here that most people
running IE6 are doing so in a corporate environment they have no control or
influence over. My wife is a great example. Large company with 10s of
thousands employees, all running IE6 with no other options. Sure there are
some home users out there still running it that don't know any better, but I'm
betting they pale in comparison to the number of corporate IE6 instances.

------
vital101
Probably not the best approach to get people to upgrade, but entertaining
nonetheless.

~~~
benwerd
My two hats are conflicted:

As a technology lead and entrepreneur, this is a disaster, and I'd have to ask
serious questions if anyone on my team were to go anywhere near it.

As a developer, LOL.

~~~
GrandMasterBirt
Ok honestly, while you may lol, this is just a IE6 bug. I have a more generic
function that will guarantee to crash ANY browser... Ok won't crash it, but it
won't be responsive for a few days.

~~~
ananthrk
Interesting. Is it possible to share it here?

~~~
GrandMasterBirt
Absolutely... give me some time though I have to find it. Its a special
regular expression where basically the regex engine can't decide which greedy
quantifier to use leading in an insanely long evaluation. I opened a firefox
bug for it a while back.

Ok found the link:

<https://bugzilla.mozilla.org/show_bug.cgi?id=520086>

Strangely this does not crash google chrome. Impressive!!!!

Err, correction, the regex now runs reasonably fast in the most recent of
regex engines but I think on a long enough string it should still fail.

The string "dead:parrot(skit = 123372398547895743957574395743957439579435" now
kills the browser.

However, unlike firefox in which regex runs in C space not JS space, google
chrome/chromium recognizes that the page is unresponsive completely and kills
the process, only the one process is unresponsive the rest of the browser
works. Good job google!

Edit: This will kill Opera, Firefox (any), IE (any)

------
apgwoz
bc; dr (browser crashed; didn't read)

------
btipling
Having to support Firefox 2 is just as awful as having to support IE 6 (no
inline-block). Just wanted to share that. Yes I have to support Firefox 2
where I work. Safari 3 is also a pain.

~~~
nkassis
at least the uptake of new version is a lot faster with Firefox users.

~~~
GrandMasterBirt
Heh, had a FF 1.5 bug happen a month ago. Turns out the user had auto updates
enabled and THOUGHT he had the latest FF. He just didnt realize that it won't
upgrade major versions automatically.

~~~
kingkilr
I had a friend who I was talking to and he was having trouble with Firefox. I
asked him to check what version he was running, he told me 1.9.1. It was a
minor miracle I realized that that was his Gecko version, because I was
stuttering around like a crazy man, trying to understand how his browser was
that out of date.

------
davydka
you can also crash IE6 with pure CSS, no javascript needed

<http://raven-seo-tools.com/blog/2675/crash-ie6-with-only-css>

------
dwt
And if you want to crash ie 8, try this jquery plugin
[http://haecker.me/trac/blog/2009/12/crash-ie7-with-
javascrip...](http://haecker.me/trac/blog/2009/12/crash-ie7-with-javascript)
to get them to upgrade to a decent browser </shameless plug>

------
ck2
Instead of destructive, why not be helpful?

Tell the visitor to install google chromeframe and give them a download link:

<http://dl.google.com/update2/installers/ChromeFrameSetup.exe>

------
Tichy
Why would I want that?

~~~
rrhyne
Because IE6 has stolen hundreds of non billable hours of your life you'll
never get back?

~~~
stevejalim
If they're non-billable hours, you're missing a 'Full IE6 support is a
chargeable extra, not core functionality' bit to your agreements ;-)

~~~
Flow
Not very realistic. If you put it forth like that 1-3 years ago you would have
the argument, "we want IE6 support, skip the others, and of course this will
not cost extra".

Edit: I'm surprised to be down-voted. Many clients that have standardized on
IE6 still exists. 3 years ago there were even more clients that used IE6, and
probably forbid other browsers, including IE7/IE8.

I've personally fought for making my web apps work on every reasonable
browser, and gotten the arguments that the client will not pay for anything
but excellent IE6 support.

~~~
stevejalim
I think a line should be drawn between 'works on IE6' (not too much extra
work) and 'looks as good on IE6 as on a modern browser' (a fair amount more
work). I, too, ensure all my stuff _works_ on IE6, but whether it looks as
good is down to the client's call/budget.

