zodvik
zodvik

Reputation: 921

Detect installed extensions in browsers?

Is it possible to detect via JS what extensions / add ons a user has installed on his browser? The use case was the a particular chrome extension, Autofill was setting some text values into hidden zip fields causing some validations to fail and I want to show a message to the user that this extension might create problems.

Upvotes: 3

Views: 5804

Answers (5)

Blargh
Blargh

Reputation: 169

For Firefox you can do it with Mochitest/SpecialPowersAPI

https://developer.mozilla.org/en-US/docs/SpecialPowers

Upvotes: 0

abraham
abraham

Reputation: 47833

In JavaScript check to see if the zip field has been changed while it is hidden and show a warning to the user that an extension might be causing issues.

Upvotes: 0

biddano
biddano

Reputation: 491

For Chrome extensions specifically, only certain extensions are detectable so this is not a very good method, but as far as I know, there are no longer any reliable methods to detect browser extensions.

For the extension that you want to detect, you would need its Extension Id and its Web accessible resource.

Some extensions have web accessible resources and some do not. If there is no web accessible resource, you will not be able to detect that extension.

To find the web accessible resource, you will need to look at the extensions chrome.manifestfile. It will tell you if there is web accessible content. For example, the chrome.manifest file might say:

content web-developer content/web-developer/ contentaccessible=yes

Generally, its not very effective to look for browser extensions since you have to know which extensions you want to detect ahead of time and many times they are undetectable.

Also, here's a good link that I used when I was trying to do the same thing here

Upvotes: 1

Noitidart
Noitidart

Reputation: 37238

For Firefox: First snippet of code on: AddonManager.jsm - MDN

Components.utils.import("resource://gre/modules/AddonManager.jsm");

AddonManager.getAllAddons(function(aAddons) {
  // Here aAddons is an array of Addon objects
});
// This code will execute before the code inside the callback

Must run this code in privelaged javascript, as in not a tab. You can try for specialPowers though I don't know how that works.

To run privelaged script from your site you will have to create a firefox addon and addEventListener's to your site, like a button to list the addons, you would attach a privelaged function to that.

With the addon you enable/disable addons, but users find that annoying because addons do some obtrsuvie stuff on install sometimes.

Upvotes: 1

Related Questions