You just described PNaCl, not NaCl. NaCl is architecture specific and already sandboxed (ie the SFI part of NaCl), whereas PNaCl is not.
Both NaCl and the plugins are running native code. NaCl is not PNaCl.
But even if they did go down that route, NaCl is licensed under BSD, so even Microsoft could add NaCL to IE if they wanted to. That's some pretty weak vendor lock-in.
http://static.googleusercontent.com/media/research.google.co...
Meanwhile, here's a NaCl sandbox escape exploit from March: https://www.exploit-db.com/exploits/36311/
Given that we're supposed to believe that New Internet Explorer was pretty much a from-the-ground-up rewrite, I can't imagine that their plugin architecture is a terrible mess.
You aren't pulling it into your project without also pulling in half of Chrome.
[0] https://www.chromium.org/nativeclient/getting-started/gettin...
[1] Indeed, in a vaguely-recent Chrome, about:plugins has this to say about NaCl:
Native Client
Name: Native Client
Version:
Location: /opt/google/chrome/internal-nacl-plugin
Type: PPAPI (in-process)
Check https://developer.chrome.com/native-client/c-api for a list of currently supported features.
For other browsers to support PPAPI, they'd have to implement all of this, which, btw, also is a moving target that moves forward in lockstep with chrome releases.
I've looked at the API, and can't agree with your statement. The API is similar to a typical game engine API. There are classes for handling input devices, audio, OpenGL, hardware video decoding, filesystem access, and basic networking. The PPAPI does not even touch the DOM, so it's not tied to being in a web browser.
Here's a random example bz pointed out from a few years ago: https://news.ycombinator.com/item?id=5452098
Basically what happens is that their flash plugin or some internal chrome app needs feature X at which point they extend PPAPI to have feature X. Trying to play catch-up with this kind of development is frustrating and difficult.
And aside of that, browser vendors don't like the fact that PPAPI is more or less re-implementing other existing web technologies. Here's a writeup by Robert O'Callahan from 2010 that goes into this reasoning: https://mail.mozilla.org/pipermail/plugin-futures/2010-April...