Tales from the Trenches: Battling Browser Bugs for "Fun" and (Non-)Profit

*
Accepted Session
Short Form
Intermediate
Scheduled: Tuesday, June 24, 2014 from 10:00 – 10:45am in B301

Excerpt

Web development used to be HARD. You basically had to rewrite your code for every new browser you wanted to support. But with modern browsers and libraries like jQuery, those dark days are over. Or are they? We pushed the limits of what the web can do while building VisualEditor (the new editor for Wikipedia) and found plenty of hilarious, insane, amazing and horrifying bugs in browsers even in 2014. All we needed to do was poke around in some unusual places.

Description

Back in the old days, web development was hard. Code written for one browser wouldn’t work in another. In order to write a web application that would work in multiple browsers, you would write it and debug it one one browser, test it in another browser, find it doesn’t work, and rewrite half your code for the other browser. If you didn’t have time to do most of the work twice, you would decide to only support one browser. And back then, that “one browser” was almost always IE6.

But it’s 2014 now, the web is standardized better than ever, standards are actually being adopted, and even Internet Explorer is (slowly) getting better. The youngest generation of web developers grew up with libraries like jQuery that paper over the few remaining differences between browsers. They don’t even know how bad it was. The dark age of web development is over.

Or is it?

For your average run-off-the-mill web development needs, this is definitely true. Thanks in no small part to jQuery and other libraries, building simple to moderately complex things on the web is easier than ever. But once you start doing increasingly complex things and stretching the limits of what browsers were designed to do, you find that underneath the nice-looking layers, browsers are still as unreliable and inconsistent as they ever were.

This presentation tells the stories of our experiences deep in the trenches of browser warfare while we worked on building VisualEditor, a next-generation editor for wiki pages. I will talk about ridiculous bugs that we discovered in modern browsers as recently as this year, crazy things we had to do to work around them, and drawn-out sagas of uphill battles to beat browsers into submission until we finally got new features working.

This is a technical presentation, but a technical background is not required; someone with no web development experience and only passing familiarity with web terminology should be able to understand at least half of the content.

Speaking experience

I have spoken at Open Source Bridge twice before, at Wikimania many times, and twice at linux.conf.au. I have also submitted this talk for Wikimania 2014 (early August in London, UK).

http://lca2014.linux.org.au/schedule/30094/view_talk?day=friday
https://www.youtube.com/watch?v=Eabma6J4L00
http://lca2012.linux.org.au/schedule/177/view_talk?day=tuesday
http://www.youtube.com/watch?v=YRGO3n-ggT0
https://wikimania2012.wikimedia.org/wiki/Submissions/Life_Without_Brackets:_Visual_Editing_for_Wikitext
http://vimeo.com/59916253

Speaker

  • Roan kattouw (wmf) 2013

    Roan Kattouw

    Wikimedia Foundation

    Biography

    Roan has been hacking on MediaWiki since 2007. In 2009, he crossed over to the dark side and became a frontend developer (he’s one of those “children” who started frontend development when jQuery already existed). Since then, he has attempted to make the dark side a little bit less evil by working on ResourceLoader (a JS/CSS loading system for MediaWiki) and VisualEditor (a next-generation editor for wiki pages).

    Sessions