Google Chrome 21 landed in the stable channel last week, but, for some reason, Google made us wait until it revealed some of the most interesting things about it. One very nice addition to Chrome 21, for Windows users, is the switch to the PPAPI plugin architecture for Flash.
PPAPI is a replacement for the ancient NPAPI, the architecture used by browser plugins, such as Flash, Java, media players and so on and so forth, that's been around since the Netscape days.
PPAPI is a modern plugin architecture, enabling sandboxing, GPU access, support for multi-process architectures and, very importantly, an OS-agnostic implementation.
Google has been working with Adobe on a PPAPI Flash for ages. In fact, a PPAPI Flash version has been around for more than a year, in working form, but it wasn't stable enough for 300 million people to use. Now it is.
"By porting Flash to PPAPI we’ve been able to achieve what was previously impossible with NPAPI for the 99.9% of Chrome users that rely on Flash. Windows Flash is now inside a sandbox that’s as strong as Chrome’s native sandbox, and dramatically more robust than anything else available," Google explained.
"And for the first time ever, Windows XP users (specifically, over 100 million Chrome users) have a sandboxed Flash—which is critical given the absence of OS support for security features like ASLR and integrity levels," it said.
Flash Player has had a sandbox of its own. Recently, Adobe enabled it for Firefox users leading to quite a lot of problems and bugs which have been mostly fixed since. Compared to nothing, that sandbox is great, but it's inferior to the native Chrome sandbox.
With PPAPI, Flash will be able to use the full Chrome sandbox. The security benefits are just part of the equation. Google boasts that the PPAPI plugin crashes 20 percent less often than before. What's more, Chrome can now include Flash content during GPU-accelerated compositing.
Chrome now ships with the PPAPI version of Flash by default on Windows. It already switched to the PPAPI version in Chrome 20 for Linux. And Mac support is coming.
Overall, having Flash ported to PPAPI and used by default in Chrome is a major step forward. It's the validation the Pepper Plugin API needed. That said, there are no plans for any other browser to support PPAPI, not to mention the companion Native Client.