Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What are the differences between Microsoft's ActiveX and Google's Native Client? [closed]

Microsoft's ActiveX and Google's Native Client both allow you to build web applications that execute native compiled code inside the browser. Besides the fact that they operate on different browsers and operating systems, what are the technical differences between them?

like image 655
Rudiger Avatar asked Feb 20 '11 19:02

Rudiger


People also ask

What is Windows ActiveX?

ActiveX is a set of object-oriented programming technologies and tools that Microsoft developed for Internet Explorer to facilitate rich media playback. Essentially, Internet Explorer uses the ActiveX software framework to load other applications in the browser.

What are ActiveX controls used for?

ActiveX controls are component program objects that Microsoft developed to enable applications to perform specific functions, such as displaying a calendar or playing a video. An ActiveX control is a small program that other applications can reuse to enable the same functionality, without the extra development work.

When was ActiveX deprecated?

The Internet Explorer 11 desktop application is retired and out of support as of June 15, 2022 for certain versions of Windows 10.


1 Answers

It's not a very good comparison; NPAPI and Native Client is probably a better thing to compare. ActiveX only works on IE, NPAPi works on other browsers (including Chrome).

Native Client executes code that is compiled by a special compiler that prevents you from using certain types of operations and provides some sandboxing and such; it is intended to allow you to write native code but still enforce many of the security restrictions that the browser already follows. For things that are possible, it's great -- as long as you can get it to work in the browser you want to use. Currently it's supported by Google Chrome, but I haven't 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 simultaneously) you write native code and do more or less anything that a normal application could do (except in IE on Vista/Win7 w/ UAC enabled where you are in low integrity mode).

The biggest disadvantage to NaCl is probably that you can't access hardware; since it's sandboxed, you're a bit more limited as to what networking things you can do and a lot more limited as to what devices you can interface with.

I highly recommend reading the FAQ about NaCl: http://code.google.com/chrome/nativeclient/faq.html

To me, NaCl is not a viable option for any of my projects requiring a plugin for the simple reason that only Google Chrome seems to be completely and officially supported.

like image 106
taxilian Avatar answered Sep 22 '22 02:09

taxilian