chrome extension force install outside Chrome Web Store - google-chrome-extension

How to force install a self hosted chrome extension in my organization?
I went over the requirements detailed in the official documentation.
I have packed the extension with Chrome's "pack extension" button, hosting it in a publicly accessible location, headers are as required. The extension is very basic.
Works when I load it (unpacked), when I manually download it, it shows "package is invalid, CRX proof required" which is fine, because it's not from the Web Store.
To force deploy it I use the google admin panel (Adding the extension by ID from a custom URL)
Any further ideas?

Search for the following setting in your Google Admin Portal:
"Allow insecure extension packaging", set it to "Allow insecurely packaged extensions" and try again.

Related

How to Pack Google chrome extension if "Load unpacked extension" is disable

i am trying to pack my google chrome extesion. but Load unpacked extension option is disabled by the organization system administrator (due to organization security policy).
please help me
You're using a managed device as you yourself stated that the restriction was set by "organization system adminstrator". They're probably just trying to be cautious. Unfortunately, as stated in this google forum there's no bypassing this as this is out of the API's scope. Contact your administrator and ask for permission to enable the button.

"User Authentication" Chome App Tutorial Page

Trying to follow this intro to user authentication using OAuth 2.0 in a Chrome Extension I am developing. https://developer.chrome.com/apps/app_identity
But I can't follow it (missing information).
Add permissions and upload app
You need to make sure the identity permission is in your manifest. You can
then upload your app to the apps and extensions management page (see Publish).
This step is fine. I have uploaded my project and it is in the developer dashboard.
Copy key to your manifest
When you register your application in the Google OAuth console, you'll provide your application's ID, which will be checked during token requests. Therefore it's important to have a consistent application ID during development.
To keep your application ID constant, you need to copy the key in the installed manifest.json to your source manifest. It's not the most graceful task, but here's how it goes:
1.Go to your user data directory. Example on MacOs: ~/Library/Application\ Support/Google/Chrome/Default/Extensions
2.List the installed apps and extensions and match your app ID on the apps and extensions management page to the same ID here.
3.Go to the installed app directory (this will be a version within the app ID).
4.Open the installed manifest.json (pico is a quick way to open the file).
5.Copy the "key" in the installed manifest.json and paste it into your app's source manifest file.
Except, straight away, at step 1, I cannot progress. My app is not installed and therefore its ID does not appear in the user data directory.
Will installing the unpacked extension work? Well it doesn't appear in Default/Extensions directory so I guess not. Besides, it has been given a different ID than my dashboard instance.
Therefore, where do I get the key? There is a key associated with my app on the developer dashboard. But this "tutorial" doesn't mention that.
Is somebody able to explain what I should be doing such as pointing me to another resource to learn how to set up a basic user authentication for a Chrome App?
After uploading, from the developer dashboard you can click on the "More Info" on the right of your extension in the dashboard.
You will see several pieces of useful data:
item id - this is the extension id
public key - this is the "key" you want. Copy everything between (not including) the "BEGIN PUBLIC KEY" and "END PUBLIC KEY" markers, and paste it into a "key" property in your manifest.json
Here's one way to solve this:
In the Chrome Developer Dashboard, edit your current project.
Scroll down and click Preview Changes
Click the Share icon button next to Add To Chrome which is grayed out.
E-mail the link to yourself.
Follow the link to your app's store page and now you should be able to click Add To Chrome. It will then be installed on your system under [profile]/Extensions.

Installing a chrome extension in China

I'm designing a chrome extension for a global market. According to Google's page (https://developer.chrome.com/extensions/hosting):
As of Chrome 33, Windows stable/beta channel users can only download
extensions hosted in the Chrome Web store, except for installs via
enterprise policy or developer mode
I understand that network admins can still configure an "enterprise policy" - but what about non-enterprise users that don't have access to the chrome web store? - and yes, I'm thinking about users in China, where the CWS is blocked.
Any clever ideas (beside asking them to use VPN :/)?
TIA!
Users may ask their friends outside China to download the installation file of specific Chrome extensions, and send to them via email or other instant chat software (QQ or others).
Or when you distribute your extensions you can attach a download url for who can not access Chrome store directly. Extensions can be installed by local file without any access to Chrome store.

How to publish Chrome extension to my domain users without paying registration fee?

I haven't paid the "one-time developer registration fee" and I have uploaded my extension. In my developer dashboard it says.
"The fee is not required to publish only to users in mydomain.com"
How can I publish to users only in mydomain.com without paying the "one-time developer registration fee". I can't find that option anywhere.
To be able to publish to only people in your domain, you must have this permission enabled by the Google Apps for Work administrator for your organization.
From Google: "Administrators can choose which users they want to be able to publish private apps for their organization by clicking this checkbox in the Admin console under Device management > Chrome management > User settings > Chrome Web Store Permissions."
Once this permission has been enabled, you can upload the ZIP file, for your extension, fill out the form, and at the end, select Private (Everyone at yourdomain.com) under Visibility options. This will allow you to publish without paying the fee.
See their documentation here: https://support.google.com/chrome/a/answer/2663860?hl=en
Based on: http://developer.chrome.com/extensions/hosting.html
Once you package your extension (Go to and click the developer mode checkbox. Now you should see the packaging button), you upload it to your server. Now you will need to use the appropriate HTTP headers to get Chrome to recognize your extension (A .crx on your server) as an installable. Chrome considers a file to be installable if:
The file has the content type application/x-chrome-extension
The file suffix is .crx and both of the following are true:
The file is not served with the HTTP header X-Content-Type-Options: nosniff
The file is served with one of the following content types:
empty string
"text/plain"
"application/octet-stream"
"unknown/unknown"
"application/unknown"
"*/*"

Removing trusted testers from chrome webstore extensions

Am trying to publish my extension to trusted testers. (as described here: https://developers.google.com/chrome/web-store/docs/publish#testaccounts)
In publishing page, i left the trusted testers dropdown empty and clicked "Publish to trusted testers". Now as described in help center, i added one email ID as trusted tester.
Everything works fine, the user able to access the extension in webstore via direct url.
But the problem is, now I removed the user email id from my trusted tester list, but that User is still be able to access the extension. Tried sign-out sign-in but the user still able to access the extension using the URL.
How do I stop that user accessing my extension?
You should try to unpublish your extension. Then "Publish to trusted testers" again with different email ID.

Resources