/build/static/layout/Breadcrumb_cap_w.png

Google Chrome Extensions

Hi all,

I have Google Chrome packaged (snapshotted the MSI, but that's another story) and want to get an extension (JSONView) preinstalled for the users in our environment who aren't able to install via the chrome web store due to firewall restrictions within our corporate network.

http://dev.chromium.org/administrators/pre-installed-extensions has 3 documented methods of doing this but I have problems with all 3, for different reasons:

1. Via Group Policy: We've been asked to ensure that the extension is included in the package so GPOs are not really valid. It appears that the only way to make this work is to point the machine at the external URL which would fall down at the firewall anyway. (further information here: http://dev.chromium.org/administrators/policy-list-3#ExtensionInstallForcelist)

2. Via Registry: Just doesn't seem to work. I've 'packaged' the extension into a crx file and installed it to the local machine using my MSI; then used the registry table as described to call that file path. I've never seen this method work, which is unfortunate because the way that it is described on dev.chromium.org it *should* do exactly what we want to do.

3. Via master_preferences file: Works every time but a) needs to install from the web so will hit the firewall and bounce and b) is ONLY valid for new users who don't already have a profile (with a preferences file) created already. We will have users with existing Chrome profiles that we need to deploy to.

I've also tried snapshotting the installation of the extension to the user profile (%localappdata%\Google\Chrome\User Data\Default\Extensions\<extensionID>) but this seems to get completely wiped out on first run of Chrome.

Has anyone had any luck with getting extensions pre-loaded? If I could get the documented registry method working (point #2 above) that sounds like the best method but as yet I've never seen it working.

Appreciate any feedback!

Cheers,
LoZ

1 Comment   [ + ] Show comment
  • where can I find the manifest key??? deploying chrome is easy, setting preferences is proving to be more cumbersome than it's worth. Unfortunately I have no choice in the matter. - _blake 9 years ago

Answers (8)

Posted by: Badger 9 years ago
Red Belt
1

 

I had to do this at a site, this might not be the best platform for this, but, I hate Google Chrome. There, I've said it. Kind of irrelevant I know, as a packager you just do as your told, but, me no likey Chrome.

Step by step guide for

Hangouts extension.
****NB (Also worth noting, this is for a physical install. Assuming you have the enterprise installer etc)
Go to google store, or from Chrome..
chrome://extensions/

Click the URL to get more extensions:
https://chrome.google.com/webstore/category/extensions?hl=en-GB

 

Choose hangouts, by default, it will just install it.

However, since we want the CRX file, you have to change the settings in Chrome to use a NW location for downloads (chrome://settings/, at the bottom of the page, choose advanced…)

Now it will prompt you for where to put the CRX file.

In Google Chrome, go to Extensions,
In Windows explorer, locate your CRX file, drag it into Chrome…

Follow any prompts, then the extension will appear in Chrome.
Now find the ID...

In the Extension view, enable Dev mode…

 

 

With Developer mode enabled the ID's are listed for all of the extensions…..
Now that you have the CRX file and the ID

You can put the information into:
"C:\Program Files (x86)\Google\Chrome\Application\33.0.1750.154\default_apps\external_extensions.json"

You have to find a bit more info too…
Either extract the CRX with 7-Zip (other tools are available) or go to:
%AppData%\Roaming\Google\Chrome\User Data\Default\Extensions

 

There will be folders for each extension, look for the folder with the ID
Under that folder will be a subfolder with the version (or find the manifest.json file, edit it to find the version )

So for Hangouts, the 3 bits of info you need are:
ID
CRX
version

The edited JSON file will look like this.

Now all you have to do, is get the CRX and the edited external_extensions.json file into:

C:\Program Files (x86)\Google\Chrome\Application\33.0.1750.154\default_apps

Choose your own weapon for that…. The formatting of the JSON is not great, I have changed it to get a nice picture that hopefully makes more sense.

 

Since this was a for a physical install, I installed the MSI with /QN:
http://www.google.com/intl/en/chrome/business/browser/admin/

I did this all in a batch file, silent MSI install, then copy down:
master_preferences, external_extensions.json and the CFR file

 

Posted by: LoZ 12 years ago
Yellow Belt
1
You should use the Enterprise version (which is already an MSI), unless you want to violate the EULA...

Thanks for your reply VBScab, but maybe I wasn't very clear in that statement. I did use their MSI and had to snapshot it.

The 'Enterprise' version is a setup.exe wrapped in an MSI. It's a shoddy cop-out by Google to appease enterprise admins. And besides that it has documented (unsolved for several versions) bugs to do with requiring access to 'phone home' during installation which can cause installation times of up to an hour if you're behind a firewall.

Regardless, getting back onto the question at hand, using the supplied MSI helps in no way to getting extensions pre-installed.
Posted by: LoZ 12 years ago
Yellow Belt
1
Having snapshotted an MSI, you're on your own, I'm afraid.

It's funny, if I don't know the answer to something I don't normally bother replying to a thread. But thanks for that pearl of wisdom.
Posted by: LoZ 12 years ago
Yellow Belt
1
For anyone still interesting in offering actual advice, just to clarify:

It's totally irrelevant whether you use the Google supplied MSI or snapshot. The documented extension deployment methods remain the same: GPO, Registry/crx file or master_preferences file. The packaging methodology is inconsequential.

Anyone on the board had any experience with deploying Google Chrome extensions?
Posted by: LoZ 12 years ago
Yellow Belt
1
If you abandon trying to get a vendor's MSI to work, maybe you're in the wrong field.

You've got me there. In all the years I've been packaging I have never learnt how to decompile a vendor setup, establish which function is attempting to 'phone home' and reverse engineer it to stop that function running. I feel like an absolute failure.

I'm sorry, did I not mention (in post #3, above) that the 'Enterprise' MSI supplied by Google is just a wrapper for the Google Chrome Installer executable? In fact, Google didn't actually put anything in the File table, the setup executable is in the Binary stream. I obviously need to work on my communication skills at the same time as the reverse engineering.

As I explained above, it's totally irrelevant to my original question about installing Chrome Extensions what was gained by snapshotting the vendor MSI. But go on I'll bite. The major difference between installing the vendor MSI (read: setup executable) and my snapshot is that my snapshot installs in about a minute, rather than an hour. Again, I'm pretty sure I mentioned that before but there seems to be some selective reading going on here as you try to prove a point about the evils of snapshotting vendor MSIs.

Can I ask that you please refrain from replying unless you have something useful to add that is specific to the original question.
Posted by: anonymous_9363 12 years ago
Red Belt
-4
I have Google Chrome packaged (snapshotted the MSI, but that's another story) You should use the Enterprise version (which is already an MSI), unless you want to violate the EULA...
Posted by: anonymous_9363 12 years ago
Red Belt
-4
I'm trying to guide you. If you abandon trying to get a vendor's MSI to work, maybe you're in the wrong field.

How has it helped, anyway? The first thing that came to mind is the need to 'phone home': a snapshotted MSI will still have that problem, except it then becomes an integral part of the MSI rather than being (what I would guess is) a Custom Action. Oops...
Posted by: anonymous_9363 12 years ago
Red Belt
-6
I did use their MSI and had to snapshot it. Having snapshotted an MSI, you're on your own, I'm afraid.
Rating comments in this legacy AppDeploy message board thread won't reorder them,
so that the conversation will remain readable.
 
This website uses cookies. By continuing to use this site and/or clicking the "Accept" button you are providing consent Quest Software and its affiliates do NOT sell the Personal Data you provide to us either when you register on our websites or when you do business with us. For more information about our Privacy Policy and our data protection efforts, please visit GDPR-HQ