This is not a good comparison; NPAPI and Native Client are probably best compared. ActiveX works only on IE, NPAPi works with other browsers (including Chrome).
The native client executes code that is compiled by a special compiler, which prevents you from using certain types of operations and provides some sandbox, etc .; it is designed so that you can write your own code, but still apply many of the security restrictions that the browser already follows. For things that are possible, this is great - as long as you can make it work in the browser you want to use. It is currently supported by Google Chrome, but I have not heard for sure that it works in any other browser.
Conversely, with NPAPI or ActiveX (and see FireBreath , which allows you to target both types at the same time), you write your own code and do more or less of everything (except IE in Vista / Win7 w / UAC is enabled where you are in low integrity mode).
The biggest drawback of NaCl is probably that you cannot access the equipment; since it is isolated from the sandbox, you are a bit more limited in terms of what kind of networking options you can make and much more limited in terms of which devices you can interact with.
I highly recommend reading the NaCl FAQ: http://code.google.com/chrome/nativeclient/faq.html
For me, NaCl is not a viable option for any of my projects requiring a plugin for the simple reason that only Google Chrome is fully and officially supported .
source share