How To: ThinApp Firefox 29 and Plugins for vCloud Director 5.1.x

In response to this article about Firefox 30 and vCloud 5.1.x and this article about Java updates breaking everything I decided to throw together a quick How-to on using ThinApp to create a sandboxed version of Firefox and Java that solves both of these problems pretty well.

This ThinApp setup includes a legacy version of Java (7u25) which is super old but it should help with accessing the following (not exhaustive list, just things I have run into, please help expand list):

  • UCS Manager 2.1.x
  • vCloud Director 5.1.x Uploads
  • HP iLO 2.x
  • Legacy DRAC
  • vCloud VPN
  • EMC Unisphere

Onward, but first an important caveat:

Note: I am not a ThinApp expert (and I usually avoid windows, hah!) so there may be a more elegant way to do this, if anyone has tips let me know!

First, collect the correct tools, I attached the versions that I used at the end of the post:

  1. Firefox 29.0.1 Link
  2. Java 7u25 (32 bit) Link
  3. Flash Installer (for correct OS, I used Win8.1) Link
  4. VMRC Installer for 5.1.x from your instance (or mine from 5.1.x below)
  5. VMware ThinApp 5.x Trial
  6. Clean Windows 7 or 8 Capture VM (Base install without security software is best)

After Windows is installed, the following are steps to take to create the package:

  1. Take snapshot of base VM
  2. Install ThinApp 5.x
  3. Take snapshot (this is a theme, I have found a successful ThinApp capture is snapshot heavy)
  4. Start “ThinApp Setup Capture” utility, Click Next
Setup Capture
  1. Click Prescan
  2. Install Firefox
    1. Choose Custom
    2. De-select “Maintenance Service”
  3. Install Flash (Latest version is fine)
  4. Install Java
    1. Choose “Change Destination Location”
    2. Install to “c:\java”
  5. Install VMRC Plugin
  6. Launch Firefox, perform the following tasks

    1. Navigate to about:config in Firefox, Click “I’ll be careful, I promise!”
    2. Change the following settings
      1. app.update.auto – false
      2. app.update.enabled – false
      3. app.update.silent – false
      4. app.update.mode – 2
      5. extensions.update.autoUpdateDefault – false
      6. extensions.update.enabled – false
      7. (optional, disables login remembering) signon.rememberSignons – false
      8. (optional, enables pop-ups since vCD uses these) dom.disable_open_during_load – false
    3. Verify plugin updating is disabled:
      1. Navigate to Menu -> Addons
      2. Click Plugins
      3. Click the gear icon and make sure this option is not selected
    Plugins
    1. Perform the following tasks to verify that Java is installed
      1. Navigate to this Link
      2. Click “Activate”
    Activate
    3. **Click** to “Allow and Remember”
    
    
    Remember
    
    
    
    4. **Check** the “Don’t Ask Again…” Checkbox and **Click** Later
    
    
    Don't Ask
    
    
    
    5. **Click** the Run button at the prompt to verify the Java applet loads
    
  7. Take Snapshot (just in case)

  8. Back to the ThinApp Capture Utility, click Postscan

Postscan
  1. Click OK
Postscan
  1. This will take some time, so grab some coffee.

  2. De-select all entry points other than Firefox, click Next

Entry Points
  1. Click Next
Next
  1. Click Next
Next
  1. Select “Restricted write access”, click Next.
Restricted Write
  1. Select “Same Directory…”, click Next.
Directory
  1. Select No (unless you want to share), click next

Share Information

  1. Click next (I don’t use the ThinDirect feature because it only works with IE)

Redirection

  1. Update inventory name to “Firefox 29.0.1″ to differentiate it.

Inventory Name

  1. Select “Use one of the entry points” then pick “Mozilla Firefox.exe”, Check “Compress virtual package”, Click:

Package Settings

  1. Click OK

Capture

  1. Ignore warnings (like a boss) and click Next

Warnings

  1. Click “Edit Package.ini”

Edit Package

  1. In Package.ini, Locate the block “[Mozilla Firefox.exe]” and perform the following changes to the block
    1. Add “StatusbarDisplayName=BeyondVM Firefox 29.0.1 Build “
    2. Add “CommandLine=%ProgramFilesDir%\Mozilla Firefox\firefox.exe -no-remote”
    3. Rename block from [Mozilla Firefox.exe] to [Mozilla Firefox 29.0.1.exe]
  2. Save Package.ini
  3. Click Build

Wait, this will also take some time, more coffee!

  1. Click Finish

Finish!

At this point you will have a functioning ThinApp package file all bundled up in the single exe file in the bin directory. You might notice that this package is quite large, I performed the following additional steps to my package to get it down to about 350MB from over 800.

  1. Edit Package.ini and perform the following modifications
    1. Add the following section below the compression type
      [FileList]
      ExcludePattern=.bak,.msi,.mst,.cab,*.msp
      
    2. Delete all entry points other than [Mozilla Firefox 29.0.1.exe]
    3. Delete the following directories from the package (note: I have not exhaustively tested this, some of these may be required but it worked for me)
      • %drive_C%\Users\All Users\Microsoft\Windows Defender
      • %ProgramFilesDir(x64)%
      • %SystemRoot%\WinSxS
      • %SystemRoot%\assembly
      • %SystemRoot%\Installer
      • %SystemRoot%\Logs
    4. Run build.bat as an Administrator

After that the package is pretty snappy and should be good to go. It will create a profile directory next to the EXE to save settings in, this will include popup allowing and certificate exceptions. The first time I logged into my vCloud instance I had to tell it to run the JRE again, I was unable to figure out how to get it to never ask during the build process but it wasn’t that bad to just do it the first time.

These are all of the files required to do this as well as the package I created following these directions. My pre-built package will expire in about 60d unless I can get VMware to give me a community license (hint hint).

Please leave a comment if there is anything I can improve!

Lastly, the caveat we started with:

Goodnight and Good Luck.

Comments
comments powered by Disqus

BeyondVM

BeyondVM is a personal blog is about virtualization, system administration archetecture and the business of IT. I post research that I do into better management of virtualization and infrastructure, as well as things that I learn along the way.

Connect
Search
Disclaimer
The views expressed anywhere on this site are strictly mine and not the position of any employer, vendor or provider including but not limited to my employer, VMware or any of its companies. Any solutions that I offer are 'use at your own risk.'
Twitter Follow Me!
Recient Comments