The conspiracy against IE6

The incredible growth of Youtube has one consequence, joyful and sad at the same time – a lot of stories will get lost under the layers of new paint. That is why I want to tell one of them – the story of how 10 years ago a small team of web developers decided to kill IE6 using Youtube and did not even get a hat for it.

I can’t remember the specific event that got our development team started making plans to murder the browser over lunch in the Youtube cafeteria. Perhaps at that time I accidentally posted a CSS style in the release where an attribute selector was specified on a non-standard HTML element. Any sane web developer would assume that if the browser cannot recognize the element, it will silently skip this description. This was not the case with older versions of IE. Under certain conditions, this led to either internal recursion and a crash of the browser (if lucky), or even a blue screen of death (if unlucky).

Or maybe for the hundredth time one of our developers used the tag <img> without specifying an attribute src… No one asked newbies to be aware that in older versions of IE, the root path (“/”) is substituted for the empty src attribute. This suddenly turns the tag <img> v <iframe>loading the master page and all associated resources, which can lead to infinite recursion. When an empty tag <img> accidentally leaked to the main page – the whole team looked for it in emergency mode until the servers melted under load.

All in all, without going into details – it was a real tough and it was related to IE6. This browser has been making our entire development team a life-threatening problem. At least 1-2 weeks of each major release was allotted to get the new UI to work on IE6. Despite all this pain, we were forced to support it for the sake of users who cannot update or work in companies where updating is prohibited by security policies. IE6 users at that time made up about 18% of the total. Everyone understood that it was impossible to simply stop supporting him, but when we were sitting in that cafeteria after several sleepless nights, there was simply no strength left to empathize with those unfortunate users. We began to collectively fantasize about how to get revenge on IE6. One idea immediately caught everyone’s attention: what if we just threaten to end support? How will users react? Will they rebel against Youtube, start sending us letters with death threats (as has happened before)? Or will they suddenly become apologists for new browsers? We dreamed of how office workers around the world would suddenly start inventing reasons why updating browsers was vital for business, and grandparents would take their tech-savvy grandchildren hostage to “fix YouTube for them.” What began as a group psychotherapy session began to turn into a concrete action plan, for the implementation of which we had unique conditions.

The plan was very simple. A small banner will appear above the video and will only be shown to IE6 users. It will read: “We are ending support for your browser soon. Please use one of the more modern browsers.” Nearby there will be links to download the latest versions of the major browsers – Chrome, Firefox, IE8 and even Opera. The text was deliberately worded vaguely, without specifying specific terms. We hoped it would look intimidating enough to get users moving, without binding us to specific end-of-support actions. Users could close the banner or leave it hanging until better times. The code was disguised as a harmless change so that no one would suspect anything when checking our commits. Apart from the web development team itself, no one has used IE6 live, so we were sure that the banner would not appear in the pre-release environment. We even postponed translating the text into other languages ​​so that the translators would not accidentally draw attention to what we were doing. The last step remained – to quietly push these changes into production.

IE6 retirement banner in 2009
IE6 retirement banner in 2009

It turned out that some members came to our team at a particularly interesting time – a few months after Google bought Youtube, but before our infrastructures began to deeply integrate. Old-time engineers defended their boundaries and took their time to get used to Google’s corporate policies. They were united by a passion for conventionally legal hacking, fast cars, strong alcohol, as well as an abundance of piercings, tattoos and arrests for petty hooliganism. Many of them were once turned up for interviews at Google, and instead they ended up on Youtube, where they had to deal with exponentially growing traffic with one hand, and with the other they had to brush aside critics who predict an imminent death of the service in the face of Google Video. By the time the company was taken over by Google, many of these engineers saw their marginality as a key factor in their success.

To maintain grip on Youtube’s codebase while integrating with Google, the old-timers created a special permission set called OldTuber. This permission completely bypassed Google’s new code quality policies and made corrections to the codebase directly, so that only the most meticulous reviewers looked at them. The readability of the code, the abundance of tests, the percentage of coverage – nothing was required. If the edits made in this way broke the site, it was at your own peril and risk: the person was immediately deprived of privileges, and possibly the work itself. Therefore, you had to be smart and not break anything. Our boss, himself from the old-timers caste, went to great lengths to ensure that the web development team was in good standing with the other old-timers. Thanks to his efforts, some of us have gained OldTuber status even though they were not part of the original team. Imagine being mistaken for a parking attendant and given the keys to a brand new Ferrari. Fortunately or not, we were not the kind of people who would immediately give the keys and leave silently. We saw a once-in-a-lifetime chance to hit IE6. If things don’t go according to plan, many of us are likely to be fired. Our most desperate developer – a guy from Croatia with a surprisingly soft voice in everyday life – demanded to make a commit on his behalf, as a sign of honor, and someone else used the OldTuber status to conduct a code review. The changes were included in the release and a few days later the banner started working.

The first person who came to our office was the head of the PR department. This smart guy has always been dressed up and down and exuded enthusiasm and positive energy – but not this time. However, his overwhelming irritability could be understood: he came to work on a completely ordinary day and suddenly found letters from all major news outlets in his inbox asking the same question: why the second largest website in the world threatens to cut off access for almost a fifth your audience. Fortunately for us, the discussion at that time had already come to a unanimous opinion that this would be a great blessing for the Internet. News sites portrayed the situation as if Youtube was fighting at the forefront for a fast, secure web for everyone. The entire PR department was on Macs, so I couldn’t even see what we did – let alone press comments. They were taken by surprise. We were pleased to describe our invention in detail and helped them articulate the key points that develop the narrative prevalent on news sites. The head of the department was glad that he would be able to ride the wave of resonance, but warned us not to do anything like this again without his agreement. It was unacceptable for him to miss such an opportunity to shape the company’s image.

Lawyers came next. There were two of them, and they came running to our workplaces in a state of well-hidden panic. Right from the doorway, they demanded to remove the banner. We began to explain that for this the devops will need to make an emergency push, and in general the whole procedure will take at least a few hours. One of them asked irritably, “Why did you put Chrome first ?!” Perplexed, I replied that we did not give any particular preference to Chrome. Our boss, whom we informed about our plans, wisely suggested randomizing the order of links for browsers and saving it in a cookie so that the interface does not “jump” between page loads. It so happened that both of these lawyers were using IE6 to access some kind of legacy systems, and both of them randomly ranked Chrome in the first place. They were very much afraid that by giving Chrome an advantage, we would attract the attention of European antitrust regulators. The lawyers admitted that nothing so we didn’t do anything criminal, but this situation happened during their watch, and they were not at all thrilled. I cleared the cookies on my copy of IE6 several times and showed that the browser links were jumbled every time. Reassured by the demonstration, the lawyers returned to their jobs and never returned.

I expected the tech executives to come next, and they would curse the loudest as we abused OldTuber’s status. Oddly enough, no one came. The next day, a couple of techies passing by stopped to congratulate us on launching the banner they had read about on the news – that’s all. We asked the boss if he got any feedback, but he just brushed it off. It seemed – carried away. Trying to comprehend what happened, I turned to one of the managers with the question of what he thinks about the banner. He replied – “I immediately realized that you just copied the banner from Google Docs.” I was completely at a loss. How did the guys from Google Docs get ahead of us? I opened Google Docs in my IE6 – and indeed, at the top of the page, there was a banner very similar to ours. He motivated users to update the browser for the sake of stability in the same vague wording.

I have already crossed paths with a couple of developers on the Google Docs team while working on shared JS libraries. I wrote to one of them and asked how they came to the idea of ​​launching their banner. He explained that they had wanted to drop support for IE6 for a long time, but the management was preventing them from doing so for the same reasons they did to us. One of their developers checked something in IE6 and noticed the banner almost immediately after it appeared on the release version of Youtube. He immediately went to these to the authorities, as with proof that we can do the same. Pretty soon they built their own banner and put it up for release, apparently with the false belief that we had passed all the necessary approvals. Many Google employees first heard about the banner in the context of internal emails, where someone asked “can we also end support for IE6 like Google Docs?” Fortunately, most of our managers were on this list as well. In some amazing way, the glory of the banner inventors passed us by.

Over time, YouTube’s technical management began to wonder how the idea of ​​dropping support for IE6 came to light altogether, given the breadth of our audience and the haste of implementation in the release. When they realized what had really happened, they pounced on our boss with questions, threatened responsibility for our actions, but in the end, reluctantly, they admitted that the end justified the means. Placing banners on Youtube, Google Docs and several other Google services gave all other sites the right to do the same. IE6 banners suddenly started popping up all over the place. Just a month later, the number of IE6 users among YouTube visitors has fallen by half, and the total number of IE6 users worldwide has dropped by 10%, behind other browsers. The results exceeded our wildest expectations.

Historical correlation of IE versions
Historical correlation of IE versions

Somehow, we backfired on our plan to destroy IE6 and didn’t get caught up in any remedial action. Almost no one knew that we were involved in this, and those who knew did not want to draw attention to this and encourage such behavior. Sitting in an outdoor brasserie in San Francisco, our boss winked furiously and demanded that we swear never to do this again. We agreed, drank to the drop in IE’s share below 10%, and never again did not push secret features into the release

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *