All of this means that today’s browser bugs are rarer but harder to pin down. Here’s a look at the latest genres of browser bugs plaguing -- or in many cases, simply nagging -- web designers and developers.
The most visible browser bugs are layout glitches. Mozilla’s Bugzilla database of bugs has 10 sections for layout problems, and that doesn’t include layout issues categorized as being related to the DOM, CSS, or Canvas. The browser’s most important job is to arrange the text and images, and getting it right is often hard.
Many layout bugs can seem small to the point of being almost esoteric. Bugzilla bug 1303580, for instance, calls out Firefox for using the italic version of a font when CSS tags call for oblique. Perhaps only a font addict would notice that. Meanwhile Bugzilla bug 1296269 reports that parts of the letters in Comic Sans are chopped off, at least on Windows. Font designers make a distinction, and it matters to them. When they can’t get the exact right look and feel across all browsers, web designers can become perhaps a bit overly frustrated.
There are hundreds, thousands, perhaps even millions of these bugs. At InfoWorld, we’ve encountered issues with images disappearing in our CMS editor and span tags that appear in only the DOM.
It’s often hard to notice the memory leaks. By definition, they don’t change any visible properties. The website is rendered correctly, but the browser doesn’t clean up after the fact. A few too many trips to websites that trigger the leak and your machine slows to a crawl because all the RAM is locked up holding a data structure that will never be repurposed. Thus, the OS frantically swaps blocks of virtual memory to disk and you spend your time waiting. The best choice is to reboot your machine.
The details of memory leak bugs can be maddeningly arcane, and we’re lucky that some programmers take the time to fix them. Consider issue 640578 from the Chronium browser stack. Changing a part of the DOM by fiddling with the
innerHTML property leaks memory. A sample piece of code with a tight repeated loop calling
requestAnimationFrame will duplicate the problem. There are dozens of issues like this.
Of course, it’s not always the browser’s fault. Chromium issue 640922, for instance, also details a memory leak and provides an example. Further analysis, though, shows that the example code was creating
Date() objects along the way to test the time, and they were probably the source of the problem.
It’s pretty much official. Everyone has forgotten about the wonderful anti-aliased artwork and web videos that Adobe Flash brought to the web. We instead blame it for all of the crashes that may or may not have been its fault. Now it’s officially being retired, but it’s not going quickly. Even some of the most forward-thinking companies pushing web standards still seem to have Flash code in their pages. I’m surprised how often I find Flash code outside of MySpace and GeoCities websites.
Sign up for CIO Asia eNewsletters.