Chrome extension uninstall URL not working in all cases - google-chrome

I track my extension uninstalls using the method chrome.runtime.setUninstallURL
It has been working fine for months but recently I noticed that if I remove the extension from the Chrome Webstore page (e.g. https://chrome.google.com/webstore/detail/{ext_name}/{ext_id}), then the uninstall URL is not opened.
Has something changed in the runtime API? Is this now expected behaviour?

The bug was reported by the original question author and is tracked at issue 900554.
Judging from the fact that it required a bisect, it's a bug in Chrome's integration with Web Store (since Chrome 67), not Web Store itself.

Related

How To Privately Test A Chrome Extension Disabled Because It Is Not Listed In The Chrome Web Store

I have written a simple Chrome extension and tested it using developer mode to load the unpacked extension. It works as expected this way.
Because the extension uses storage.sync API, I would like to undertake further testing with installations of the extension as published in the Chrome Web Store.
The Developer Dashboard for Chrome Web Store provides an option to publish to trusted users only:
Only trusted testers from your developer dashboard can see it.
You can also include members of a Google Group that you own or manage.
When I publish this way the trusted testers listed for my dashboard can reach the extension and install it from the Chrome Web Store. However, the extension is always disabled upon starting Chrome:
This extension is not listed in the Chrome Web Store and may have been added without your knowledge. Learn more
We, my testers and I, have not been able to find any way to enable an extension disabled by Chrome. Is there one? If not, the entire exercise of an "unlisted" publication mode for testing seems pointless.
The only work around I've found to this situation so far is to set the extension to "unlisted" rather than "published to testers" from the Chrome developer dashboard.
This is not at all satisfying, but did allow some real world testing in an unobtrusive way.

How to apply a fix to an installed chrome extension?

I am using a popup blocker named JavaScript Popup Blocker.
Sometimes this extension becomes broken, I have to reinstall it (e.g. it breaks when I add a website with a URL like http://xxxx:6666/).
Today, it happen again and I decided to fix the error (last update is in 2013, it seems that author would not fix this error in future). I found the extension folder by chrome extension ID, and made some changes to the source code.
But Chrome says this extension is broken and needs fixing after I restart Chrome. I even repacked the extension and installed again, it still doesn't work.
Ok, I found the answer myself.
Remove key in manifest.json, remove the _metadata folder as well(as Xan suggest), then repack the extension.
Then Chrome would not say this extension is broken after installing.

Chrome Extension equivalent to Android's INSTALL_REFERRER

Is there a way to detect where a chrome extension installation was referred from. In case you want to rebrand the extension based on where the user came from
Android Apps are capable of this using intent com.android.vending.INSTALL_REFERRER and a referrer=something querystring on their Google Play URL, but I've been unable to find anything similar for Chrome Extensions.
I can probably do a 80% solution with cookies and redirects but it would be nice if this worked as cleanly as in Android INSTALL_REFERRER
It seems that there is no referrer option for Chrome Extensions and it is not listed in the documentation. See the following link for the closest I've found.
https://developer.chrome.com/extensions/runtime#type-OnInstalledReason
A workaround for this would be to pull the data from Google Analytics using the API. Referrals are recorded in Google Analytics for my Chrome Extension:

Client-ID/extension-ID mismatch when loading my extension in a new computer

My chrome extension uses a client-ID that's based on the extension-ID it got when I loaded it in chrome extension developer mode. When I load the extension on another computer it gets assigned a different extension-ID, and so it doesn't work from that computer because there is a mismatch of extension-ID and client-ID. Is there any way of solving this issue?
I've looked a bit into publishing the extension via the chrome developer dashboard, but it involves paying a fee, so I haven't tried it yet.
You can manually set the key value in the manifest file to get a consistent item ID.

How to make tag for chrome extension in webstore

I have done a extension for one specific website and uploaded it in my webstore developer account and published it.
After that if i try to search that extension in webstore it is not listing.
Any idea on this? Am i want to make any tag or something in my extension?
PS:
Here is an example of my scenario. I have created a extension for the website abcd.com and named the extension as "abcd - do action". When i search in webstore for abcd, its listing some of the extensions but not mine.
The Chrome Web Store index is updated on a delayed basis. Sometimes it can take a few hours or a few days before your item is searchable. You should also try searching without your own extension installed as sometimes the Chrome Web Store will hide installed extensions from results.