Writing Field note

Browser · 4 min read

Why Browsers Killed Flash (And Why Designers Lost Out)

I worked in advertising as browsers pushed Flash out. The web gained battery life and privacy controls, while ad production got much harder.

In this article3 sections

I was building Flash ads when Chrome announced that version 55 would disable Flash by default. For users, that meant fewer slow and unsafe plugins. For my industry, it meant replacing a production workflow before the inventory disappeared.

Google’s August 2016 announcement said Chrome 53 would block background Flash and Chrome 55 would prefer HTML5, with permission prompts where Flash was needed. Google framed it as a security and power-use improvement.

In my corner of the industry, Flash meant advertisements and games. I did not know it as an analytics tool.

Mobile killed Flash first

Apple killed Flash on iOS in 2010. Steve Jobs published “Thoughts on Flash”—a public letter explaining why Flash would never come to iPhone or iPad. His arguments: battery life, security, touch interfaces that don’t work with hover states, and Adobe’s closed ecosystem.

That was the real death blow. By 2016, mobile traffic had overtaken desktop. If your platform doesn’t work on iOS, you’re locked out of half the mobile web. Chrome disabling Flash just finished what Jobs started six years earlier.

Why browser vendors hate Flash

Battery and optimization

Flash was the only consistent way to play videos across platforms and browsers. This hindered browser innovation on video performance.

Adobe put real effort into hardware-accelerating Flash video. The real problem was architectural: Flash Player was a plugin black box that browsers couldn’t optimize or control.

Native playback let browser vendors coordinate video with their own rendering, media controls, and power management. Flash also supported hardware acceleration; the distinction was control of the stack, not a claim that plugins could never decode video efficiently.

This mattered most on phones, where battery, heat, and network conditions all move around. A plugin architecture built for desktop PCs was a poor fit.

Adobe lock-in and HTML5 video maturity

Flash meant Adobe’s ecosystem, and browsers prefer open standards. Flash represented the opposite of that preference.

By 2016, HTML5 video had caught up. The <video> tag gave browsers native playback. Media Source Extensions (MSE) enabled adaptive streaming. Encrypted Media Extensions (EME) supplied DRM interfaces that services such as Netflix needed; Netflix’s earlier browser playback used Silverlight.

Flash stuck around so long partly because Mozilla refused to implement DRM. Netflix needed DRM and wouldn’t move to HTML5 without it. When Mozilla reversed its anti-DRM stance and implemented EME, the last major reason to keep Flash disappeared.

Native browser APIs moved media behavior into the browser’s implementation. The availability of muting, picture-in-picture, and OS media controls still depended on the browser and version.

Security vulnerabilities

Flash had constant zero-day exploits requiring emergency patches. I saw this firsthand—our ad ops teams dealt with clients panicking over Flash vulnerabilities that could compromise user systems through banner ads.

Flash runs a complex runtime with its own networking, rendering, and scripting engine. Vulnerabilities could bypass browser security sandboxes entirely. Browser vendors defended against attacks they couldn’t control—every Flash vulnerability reflected poorly on the browser even though Adobe was responsible for patching.

Moving to native HTML5 meant browsers could control and harden the entire stack.

Privacy issues

Flash implemented its own storage, Local Shared Objects, which was historically separate from ordinary browser cookies. I saw ad tracking companies take advantage of this—users cleared browser cookies thinking they’d reset tracking, but Flash cookies persisted.

Browsers can’t manage what they don’t control. By 2016, browsers had added ways to clear Flash cookies, but the fundamental issue remained: plugin architecture meant giving up privacy control to Adobe.

Designers paid for the transition

Advertisers were major Flash users, so blocking it also removed ads for many users. The browser got faster and safer while publishers lost working inventory.

Designers couldn’t figure out how to build advertisements in JavaScript productively. Animate CC could export HTML5 Canvas content, but translating an existing Flash ad and its ActionScript into that workflow was difficult.

Advertising companies lost out too. Moving existing inventory away from Flash was far from easy.

Adobe tried to preserve the authoring workflow in Animate CC, but the HTML5 transition was awkward. I ended up opening Animate’s built-in components and working backward because Adobe had not documented the extension format well enough to use directly.

Browsers were right to take control of video, power use, security, and storage. The part they could not replace was the authoring system designers had built their work around. Flash deserved to lose the runtime. Designers still absorbed the cost.

Was this useful?

What was missing?

Thanks for the feedback.