IMPORTANT 3-Nov-16

Try using VivioJS instead of Vivio. The equivalent VivioJS animations can be viewed in most browsers WITHOUT installing this plugin.




Installing the Vivio ActiveX player and the Mozilla Firefox Plugin

The Vivio ActiveX player (compatible with Internet Explorer) and Mozilla Firefox plugin (compatible with Firefox, Opera, Safari and Google Chrome) are now installed by executing the Vivio 5.1 installer. Note that Vivio works on systems with IA32compatible CPUs running 32 or 64bit Windows directly or via a virtual PC.

If a web page containing a Vivio animation is selected (e.g. https://www.cs.tcd.ie/Jeremy.Jones/vivio 5.1/sorts/BubbleSort.htm) and the Vivio player/plugin is NOT installed, the following is displayed.

Click "Install" to download and save the Vivio installer. Run the Vivio installer. The exact mechanics of doing this varies from browser to browser but it is generally very straightforward. The Vivio installer can be downloaded and run directly by clicking install.exe. If installing using Internet Explorer, make sure "Allow software to run or install even if signature is invalid" is set in the [Tools][Internet Options][Advanced] security section.

Click "install" to start the installation process. The installer extracts the Vivio ActiveX player (vivioAX.ocx) and the Mozilla Firefox plugin (npvivio.dll) from the downloaded install.exe file and then tries to install them "globally" for ALL users by saving them in the PROGRAMFILES directory. It then registers the Vivio ActiveX player.

"Global" installation for ALL users may fail because the user may NOT have sufficient access privileges to write to the PROGRAMFILES directory or the HKEY_CLASSES_ROOT part of the registry needed to register the ActiveX control. In this case, the installer installs the Vivio player and plugin on a per-user basis. The Vivio player and plugin are saved in the user's APPDATA directory, the Vivio ActiveX control is registered on a per user basis and a registry entry is added to HKEY_CURRENT_USER\SOFTWARE\MozillaPlugins so that  Firefox, Opera, Safari and Google Chrome can locate the plugin. Alternatively, install.exe can be "Run as administrator" to perform a global installation.

Once installed, the original web page is refreshed and the Vivio animation displayed.

The Vivio player and plugin can be uninstalled by clicking "uninstall". This removes both the "global" and per-user installations.


 

Why a Vivio Installer?

It is important that the Vivio player and plugin are installed as seamlessly as possible, otherwise potential users may NOT bother to try out the Vivio animations.

Earlier versions of Vivio used (1) the in-built IE ActiveX control installation process based on a signed .cab file and (2) the in-built Firefox installation process based on an .xpi file. The original in-built installation processes could NOT install on a per-user basis which meant that the player and plugin couldn't be installed in locked down environments such as student computer laboratories. Current IE and Firefox in-built installation processes can install on a per-user basis, but neither can be configured to attempt a "global" installation and then, if this fails, a per-user installation. The ActiveX .cab file has to be signed otherwise it makes installation difficult for the user. Since personal Authenticode code signing certificates can no longer be purchased, a corporate code signing certificate is needed. For a University based project such as Vivio, it  is tempting to try and avoid the regular expense and hassle of obtaining a corporate Authenticode code signing certificate. After all, it's all a matter of trust. Furthermore, with other additional in-built installation processes for Opera, Safari and Google Chrome it was decided that it would be far easier, in the long run, to implement a custom installer as many commercial companies have done.

The source code for the Vivio installer is part of the Vivio distribution. Install.exe is a a self-extracting installer meaning that the installation code is followed by the compressed code for vivioAX.ocx (ActiveX  player) and npvivio.dll (Mozilla Firefox plugin) in the file. This approach works in most locked down environments because the code is downloaded from within the browser rather than by install.exe itself. One technical issue that is not widely reported is how to register ActiveX controls on a per-user basis. It turns out that the MFC library contains a function AfxSetPerUserRegistration(BOOL perUser) which has only recently been documented. This function is added to the export list of vivioAX.ocx as DllSetPerUserRegistration. The installer loads library vivioAX.ocx and gets the entry points for DllSetPerUserRegistration and DllRegisterServer. A call to DllSetPerUserRegistration is used to configure global or per-user registration before calling DllRegisterServer().

The Vivio player and plugin are linked statically. Although this increases their size, it makes sure that they don't suffer from missing library syndrome when run in different environments.

This Vivio release works with XP, Vista, Windows 7 and has been tested with IE 8.0, Firefox 3.0.9, Opera 9.64, Safari 3.2.3 and Google Chrome 2.0.169.1.