vSphere Web Client Integration Plugin broken in Chrome 43

Google_Chrome_icon_(2011).svgI spent some time yesterday wondering why I was suddenly unable to open a console from the vSphere Web Client.  I would right click on a VM but options like “Open Console” were grayed out. Clicking the “Launch Console” link from the Summary tab only led an ERR_CONNECTION_REFUSED error.

Looks like Google Chrome 43 has broken the vSphere Web Client Integration Plugin again. Google is trying to do the right thing and make the internet a safer place by tightening up the security of their browser and getting rid of old technologies. We’ve already seen this with recent SSL issues in Chrome. Suddenly I find myself weighing the advantage of having an auto-updating browser vs making sure my stuff works.

This isn’t the first time Chrome has broken the web client. In Chrome 42, a component that the web client relies on called NPAPI was disabled by default and required re-enabling the “enable-npapi” Chrome flag. NPAPI stands for Netscape Plugin Application Programming Interface. Yes Netscape! It’s a 20 year old plugin built for Netscape Navigator 2.0. And everything still uses it. Google wants to kill it and replace it with their own. This shouldn’t have been a surprise. They warned the industry in September 2013 that this was coming. Honestly I’m a bit surprised that VMware built their web client on technology they knew was being deprecated. Chrome is just the first browser to kill off NPAPI, Firefox is about to follow suit and I’m sure in time IE and Opera will follow Google’s lead. Google has promised to remove NPAPI entirely in Chrome 45, due out in September. After that there will be no workarounds.

Symptoms:

Broken functionality in the vSphere Web Client including:

  • Right click on a running VM. The “Open Console” function is grayed out.
    greyed out
  • Clicking the Console link in the summary tab will open an error in a new tab where you’ll receive the error:
    This webpage is not available / ERR_CONNECTION_REFUSEErrConnectionRefused

The workaround:

You will have to modify a couple Chrome flags:

  1. Enter  chrome://flags/ in to the address bar.
  2. If you’re on Windows 8, set “Enable win32k renderer lockdown” to Disabled.  win32k renderer lockdown
  3. Enable “Enable NPAPI” (notice the additional warning of NPAPI going away in Chrome 45, also this may already be enabled if you fixed it in Chrome 42)
    Enable NPAPI