Welcome, Guest Login

Virtualizing Google Chrome using the Snapshot method

Last Updated: Oct 09, 2014 04:56PM PDT

Step 1: Start with a clean Windows operating system

When using the snapshot method to virtualize an application, it is important to start with a clean system so that no components are missed during the capture and diff process.  

The snapshot process can be performed on a virtual machine or a physical machine. Typically a virtual machine is used so that the system can easily be reset in case the process needs to be repeated.

There are many options for virtual machine software including VMWare Workstation, Oracle Virtual Box (free) and Microsoft Virtual PC. In this example I’ll be using Microsoft Virtual PC.

If you require compatibility with Windows XP, you should snapshot on Windows XP. Otherwise, Windows 7 32- or 64-bit is fine.

Step 2: Install Spoon Studio

Spoon Studio can be downloaded from http://www.spoon.net/studio.

Step 3: Using the Wizard, capture the initial state of the system

Select the third option in the Wizard, Snapshot a third-party application.

Select “Next” on the following screen to capture the “before” snapshot.

Step 4: Install and configure Chrome 24

Chrome can be installed in two different locations on the system. The standard location is underneath the Current User profile. There is another installer available on the Google website for installing Chrome under the All Users profile.  In this example the default location will be used, but both approaches will be discussed in the following steps.

Step 5: Capture the “after” snapshot and compute deltas

After configuring Chrome, shut down the application (ensure it is not running in the background by checking the system tray and task manager) and return to the Spoon Studio wizard. Click “Next”.

Now run the “after” snapshot which will compute the deltas and create the virtual application configuration.

Step 6: Select a startup file

The correct startup file should already be selected, but if not select one from the list or select multiple using the Multiple button.

Step 7: Select the sandbox location

The default sandbox location is stored under the Current User profile.  Changing the sandbox location is not recommended unless there is a specific reason to use another sandbox location.

Step 8: Select the output file

Select the location where the output executable will be built. This should be stored in the same location as the virtual application configuration file (snapshot.xappl).

Step 9: Save the configuration

This is the final step of the wizard where it is recommended to save the configuration.  There are still some edits to be made specifically for Chrome, so there is no need to build and run Chrome yet.

Step 10: Save a copy of the original configuration file

Save the configuration file under a new name.  This will preserve the original configuration.  If a mistake is made during the process of editing the configuration you can revert to the original configuration file.

Step 11: Filesystem configuration

Since it is possible for Chrome to be installed in two locations, there is a possibility of conflict between the virtual application and an installed version of Chrome.  To avoid this problem, set these folders to FULL isolation in the configuration:
  • @PROGRAMFILESX86@\Google
Note: if these directories do not exist, you'll need to create them with the "New Folder" button.

Step 12: Registry configuration

The same logic from Step 11 applies to the registry as well. In this case, set these keys to FULL isolation:

  • @HKCU@\Software\Google

  • @HKLM@\Software\Google

In addition, set this key to WriteCopy isolation:

  • @HKCU@\Software\MozillaPlugins

Note: if these keys do not exist, you'll need to create them with the "New Key" button.

Remove this key from the virtual registry:

  • @HKCU@\Software\Microsoft

Step 14: Remove Update folder

Generally we recommend turning off automatic updates for virtual applications in order to prevent any unplanned updates from the software publisher.

If you would like to turn off automatic updates for Chrome, delete these folders if they exist:

  • @PROGRAMFILESX86@\Google\Update
  • @APPDATALOCAL@\Google\Update

Step 15: Remove PepperFlash folder

The latest release of PepperFlash is not supported by Spoon.  Delete the folder “PepperFlash” under Local Application Data > Google > Chrome > User Data to revert to the older version of the Chrome Flash player.

Step 16: Set additional configuration settings

Go to Settings > Process Configuration and select “Always launch child processes as current user” and “Enable window class isolation”. The first setting is to ensure that all child processes have the same permissions as the running user and the second setting is to ensure that different versions of Chrome can run side by side.

Step 17: Edit the Preferences file

Save the configuration. In a text editor, open the Preferences file located at:
  • Files\@APPDATALOCAL@\Google\Chrome\User Data\Default

In this file, verify that the default browser check is turned off:

"browser": {

In addition, edit the Preferences file to prompt for a location to save downloads:

"download": {

Save the file. Reload the configuration in Studio.

Step 18: Build and run

After saving the configuration, click the Build and Run button.

Step 19: Test on a clean system

After running the application, copy all of the configuration files to a repository where the virtual application builds are stored. If at any point in time the application needs to be rebuilt, all of the necessary files should be available.

For testing, you will need system(s) available that represent the target environment(s) where the application is going to be deployed.  If you are using a virtual machine for the build, then the virtual machine can be reset to a clean state, and can be used to test the virtual Chrome executable on a system where Chrome is not installed.

Contact Us

  • Post a Question
  • Email Us

  • Phone (North America)

    Phone (International)
seconds ago
a minute ago
minutes ago
an hour ago
hours ago
a day ago
days ago
Invalid characters found