Present day browsers have become complex beasts.

Earlier, they were fairly simple applications that needed to display images and text in properly layout. The only complexity and oddity probably was the <Blink> tag.

After many years and much ‘development’, we find that browsers have a lot of complexity. In addition to laying out text and images, they also have to worry about CSS styles, themes and layers. Then they have to worry about Javascript engines and code execution. To top that is the complexity of choosing the correct codec and device capabilities – using GPU in case of WebGL.