automate chrome extension installation when user access my website - google-chrome-extension

i need my chrome extension to be downloaded and installed automatically, when user access my website from Google chrome.
my extension is stored in my web-server, should i need to store the extension in google web store for the above purpose.
is it possible to provide a shortcut to my extension in desktop also.
i am able to manually install the extension, but need to installed automatically using java-script or any other method
i have found some similar post using registry editing etc, but this will not meet my requirement.

Security restrictions prevent an extension from being installed from a web site other than the Chrome Web Store. You cannot bypass this restriction without control of the end-user machine.
The Web Store does not provide any mechanism for automatic extension installation. (This is a very good thing.)
On a standard Chrome installation, the only way to install an extension outside of the Web Store is by dragging a crx file onto the Extensions preferences page (chrome://extensions).
If you have administrative control of the target computers that the extension is to be instaled on, you can write a script that installs the extension.

Related

Install chrome extension using registry

I have an extension that is hosted in Chrome wwebstore, I want to make an installer that installs it automatically through registry, however, I seems that this method does not work anymore, and if it works it wont be activated. Is there any other possible solution after the last chrome updates.
No matter which method you use for an installer, the extension will be initially disabled and user will be presented with a question whether he wants to enable your extension.
That said, this is still the correct method. Add a key to the registry, on next launch Chrome will download the extension and present a dialog to the user.
The only way to install an extension "no questions asked" (on Windows) is through domain policies.

chrome extension auto-update strategy

I want to update my chrome extensions automatically or via command line. These could be archived using Autoupdating, but only for hosted extension. Autoupdating is not supported for extension hosted in Chrome Web Store. Manual updating through web portal is very tiring.
It is possible to use directly linking js file to external web site, but it will not work for offline use case. We could add appcache to background page, but will that work?
An desperate approach is store js files in indexedDB and inject it.
Is there any better solution?

How do third party installer install addons in our browser?

My question is how do third party installer installs addons in the browser like toolbars and able to set homepage and other browser properties??
I want to make an addon which get installed in browser in same way..
is it possible??
In principle, installing extensions along with other software is possible. I'm describing the procedure for Windows.
The following conditions have to be met:
You must be able to write to the HKLM registry subtree (needs Admin rights)
The extension must be published on Chrome Web Store
The machine must be able to download the extension from Web Store
If those conditions are met, you can do it according to the procedure described here. Basically, the installer must create a registry key that will trigger Chrome to download the extension on next launch.
That said, Google has gone to great pains to prevent silent installs and avoid browser settings hijack. Such setting overrides are a weapons race and Chrome is tightening its defenses. Ask yourself whether it's ethical to install your extension this way.
It will probably annoy your users and will flag your extension for more meticulous checks by Google. Remember that Google can disable any extension hosted by the Web Store if it violates its policies.
Also, be mindful of the single purpose policy. A toolbar that also overrides search/homepage/settings will be frowned upon. At a minimum it should be separated into several extensions, at a maximum - don't do it.
An extension can override, say, a homepage, but it's very restrictive. The extension must be in the Web Store as above, and any override pages must be verified for ownership for the Web Store developer account. All in the name of security and comfort of the users.

Chrome extension deployment

I have developed a chrome extension and i always use developer mode to debug. Now I want to deploy it. Is there a way to install extension per chrome profile? and I wonder how to get the extension id?
1:extension ID can be found at chrome://extensions.like this:
2:I have no idea about your words "install extension per chrome profile". any way, if you want to use your chrome extension without developer mode. just use the"pack extension" button in the chrome extension page. you will get a crx file. to install it, just drag and drop it in you chrome.
you can also publish it to chorme web store. see here. then you and any other could easily install your extension frome chrome web store.
Firstly to deploy your extension on web store you must have google developer account which costs $5.
Secondly the chrome extension id which you see while developing extension in your pc is different from what you will get when you have deployed your extension on chrome store.
Basically when you deploy your extension,chrome store ask you to upload the zip of your extension folder not the crx file.Also note that it will not give you any .pem file like you will get when you pack your extension locally.Chrome store will maintain the same extension id on each updation.
Note that you cannot update the extension with the same version.You must increment the version number on each updation,otherwise chrome will show error on updation.

Is it possible to create a Chrome Extension for private distribution outside Chrome Web Store?

We have a Chrome Extension application that we have developed and would like to distribute it only a limited number of internal users.
This would be a private app, but to install it, users now have to follow the manual steps of going to Settings -> Extensions -> clicking on Developer mode -> drop the .crx in there.
I would like to know if there is a way to just have private App Store to privately distribute this app and not have it on Chrome Web Store for anyone to see/download/use.
Thanks for your help in advance ---
You use the Chrome Web Store. 2 options are available:
Share an unlisted Chrome extension from the Chrome Web Store (anyone with the link will be able to install it)
Chrome customers using G Suite or Education can use the Chrome Web Store to host private apps restricted only to their users on the same domain.
See https://support.google.com/chrome/a/answer/2663860
Update 2016-05-20: From https://support.google.com/chrome/a/answer/2663860?hl=en
Chrome customers using Google Apps for Work or Education can use the Chrome Web Store to host private apps restricted only to their users or people who you share a direct link to the app with. Users from the same Chrome domain will see their organization's private apps in a private collection in the Chrome Web Store.
Update 2015-10-27: Google has updated installation policies in attempt to curb malicious extension activity on Windows. On the chrome extension hosting page:
Warning: As of Chrome 33, Windows users can only download extensions
hosted in the Chrome Web store, except for installs via enterprise
policy or developer mode (see Protecting Windows users from malicious
extensions). As of Chrome 44, no external installs are allowed from a
path to a local .crx on Mac (see Continuing to protect Chrome users
from malicious extensions).
With the latest versions of Google Chrome, users are no longer going to be able to just click a download link and have it install with the correct HTTP headers. This leaves you with 4 possible options:
user downloads extension and then drags the file into the extension management page (This no longer works on Windows per update note)
change registry settings on users computers
user downloads extension source folder and loads extension from source in the extension management page
Re-enable extension installs with command-line flag as suggested by Rob W
I have created and distributed several different Google Chrome extensions privately within my company and went with the first option. It is an extra step for the users but it wasn't a big deal. The users did not have to have developer mode enabled in their Chrome browser for this to work.
Yes, you can. You need to create the crx file through the google chrome "Extensions" page (visit: chrome://extensions/ NOTE: You cannot click the link you have to manually copy and paste it, chrome does not allow you to visit the link from href)
On the Extensions page, check the box "developer mode", choose "pack extension".
Now you get the following popup. Click "browse" for the Extension root directory and navigate to the folder containing your extension (the folder containing manifest.json).
The first time you do this, ignore private key file. It will generate one for you automatically and save it to the same folder.
When you release a new version of the extension, use the generated private key file. This way for someone to update the extension, it won't ask for permissions again.
TO INSTALL
To install the extension, just get each user to manually drag the newly created extension crx into the Extensions page (chrome://extensions/).
The first time it will ask for permissions just like when installing from the Chrome Web Store.
For each new version, as long as you used the same private key file for each new version, users just drag the new version into the Extensions page the same way except they won't be asked for permissions again. It will just update the extension.
WARNINGS:
Beware the way you distribute the extension crx file. When user downloads the extension .crx file in Google Chrome, it will think you're trying to install the extension from that page, and come up a warning "couldn't be installed from this site". You need to make sure that users know to ignore the error, and check their downloads folder for the extension to manually install it.
Whenever you download the .crx file, Chrome will give the user a warning saying it might contain a virus. There is no way around this. Even if you zip up the file, Chrome will read the contents and give the same warning. Some users won't install because of this. A workaround is to rename the .crx to something else, like .RENAME_TO_CRX, but this is a hassle and a lot of users either won't want to or won't be able to figure it out.
You can't update the extension automatically. It's just not possible because Chrome manually blocked this capability.
NOTE: Another way would be to release it on the Chrome Store, but only for certain users (not public). Only people with the link could install, OR you could make it only certain people can install and even if you had the link but weren't part of the group, they couldn't view the extension. Only problem here is if you don't want Google to see the extension.
If you use Google Apps, it appears there's now a way to publish apps and extensions to the Chrome Web Store, but only make it visible to users of that domain.
https://support.google.com/chrome/a/answer/2663860?hl=en
Since its internal, could you change registry settings on their computers?
Because if so, you can use them to allow easy install of extensions from outside the web store or force install extensions on their machine.
Look here....
http://www.chromium.org/administrators/policy-templates
http://www.chromium.org/administrators/policy-list-3#ExtensionInstallSources
http://www.chromium.org/administrators/policy-list-3#ExtensionInstallForcelist

Resources