I'm debugging a web application that doesn't work for a user and one of my suspicions is that an installed Chrome extension is interfering with it. Is there an easy way for the user to provide me with a list of their installed extensions? chrome://extensions
is a possibility, but it's not easy to extract the information I need except to copy each name manually.
-
4he can select everything on the page with CTRL+A and copy it to Word / Excel / e-mail application ... and send it to you.– Máté JuhászCommented Jan 6, 2017 at 13:31
-
1@MátéJuhász, you can't use CTRL+A on this page.– BlackCommented Aug 6, 2018 at 13:59
5 Answers
Go to chrome://system
and click the Expand... button to the right of the extensions row. This provides a comma sorted list of all extensions. You can drag and highlight the list to copy.
This also has the benefit of only listing active extensions (since installed but deactivated extensions can be ruled out). For a complete list have them activate all extensions they have, refresh the chrome://system page and copy the now updated list.
-
1When you copy the list it will have entries such as
aapbdbdomjkkjkaonfhkkikfgjllcleb : Google Translate : version 2_0_6
. To remove the first part, you can use Notepad++, Search and Replace (enable Regex), enter at "Find what:"^([^:]+:)(.)
and "Replace with:"\2
. Then you getGoogle Translate : version 2_0_6
. Credits stackoverflow.com/q/23428664/1066234– AvatarCommented Oct 12, 2017 at 14:17 -
1+1 Lifesaver! This so worked well. ... But, why/how can't I scrape the info with
querySelectorAll
? I mean technology-wise ... what is the technique or program that is preventing it? Commented May 3, 2018 at 20:53 -
3@EricHepperle-CodeSlayer2010 That is because the extension items are put inside a shadow root inside a web component. It means that there are multiple isolated DOM trees inside the DOM tree that have their own styles and scripts. Here is the code for using
querySelectorAll
(navigates into shadow DOMs and then searches for the next element to look for):[...document.querySelector('body > extensions-manager').shadowRoot.querySelector('cr-view-manager > extensions-item-list').shadowRoot.querySelectorAll('extensions-item')].map(item => item.getAttribute('id'))
. Commented Sep 21, 2021 at 0:29 -
2@SaianshSingh Thanks for explaining and the code! I'm getting tired of fast-moving technology. We didn't learn about "shadowRoot" when I graduated in 2016. Commented Oct 7, 2021 at 19:42
Is there an easy way for the user to provide me with a list of installed extensions?
You can use BrowserAddonsView from Nirsoft:
BrowserAddonsView is a simple tool that displays the details of all Web browser addons/plugins installed in your system. BrowserAddonsView can scan and detect the addons of most popular Web browsers: Chrome, Firefox, and Internet Explorer. For Chrome and Firefox, BrowserAddonsView detects and scans all Web browser profiles if there are multiple profiles.
Your can sort the output by "Web Browser" and then select the Chrome extensions.
Then either:
"File" > "Save Selected Items" to export to a text file, or
"View" > "HTML Report - Selected Items"
Here is an extract from the text file for my Chrome:
> type extensions.txt
==================================================
Item ID : cfhdojbkjhnklbpkdaibdccddilifddb
Status : Enabled
Web Browser : Chrome
Addon Type : Extension
Name : Adblock Plus
Version : 1.12.4
Description : Used by over 50 million people, a free ad blocker that blocks ALL annoying ads, malware and tracking.
Title : Adblock Plus
Creator :
Install Time : 10/11/2016 11:20:33
Update Time :
Homepage URL :
Update URL : https://clients2.google.com/service/update2/crx
Source URL :
Addon Filename : C:\Users\DavidPostill\AppData\Local\Google\Chrome\User Data\Default\Extensions\cfhdojbkjhnklbpkdaibdccddilifddb\1.12.4_0\manifest.json
Addon File Created Time: 10/11/2016 11:20:31
Addon File Modified Time: 10/11/2016 11:20:32
Size :
Profile Folder : C:\Users\DavidPostill\AppData\Local\Google\Chrome\User Data\Default
==================================================
The user can email you this text file.
Disclaimer
I am not affiliated with Nirsoft in any way, I am just an end user of their software.
-
1Installing additional software isn't exactly the easiest route– GremlinCommented Jan 9, 2017 at 10:28
-
3IMO this is both the easiest and the best route. Aside from the simple (portable) installation of this small freeware program, one need only select the most important columns (e.g. Name, Status, Web Browser, Version, Description), then Save As (I like the CSV format best because it can open in any spreadsheet/etc and then be pasted into any text document. Has the benefits of working with multiple browsers, showing which are active/disabled, and other items like dates, sizes, folders etc. if needed. Truly elegant and comprehensive solution which should be utilized. Commented May 29, 2017 at 0:57
-
2
-
Note: It can open any Chrome profile folder via
Options -> Advanced Options
. It doesn't have to be installed on the computer that has the browser installation. So if you have access to a Windows computer (or virtual machine), you can copy the relevant profile folder(s) over and view the extensions in it. Commented Apr 4, 2019 at 5:52
You can copy a JSON list of all the extensions and their URLs by going to chrome://extensions
and entering this in your console:
document.querySelector('extensions-manager').extensions_.map(({id, name, state, webStoreUrl}) => ({id, name, state, webStoreUrl}))
or if you want to copy the JSON directly to your clipboard, you can add copy
:
copy(document.querySelector('extensions-manager').extensions_.map(({id, name, state, webStoreUrl}) => ({id, name, state, webStoreUrl})))
The result will be a JSON array:
[
{
"id": "fmkadmapgofadopljbjfkapdkoienihi",
"name": "React Developer Tools",
"state": "ENABLED",
"webStoreUrl": "https://chrome.google.com/webstore/detail/fmkadmapgofadopljbjfkapdkoienihi"
},
{
"id": "lmhkpmbekcpmknklioeibfkpmmfibljd",
"name": "Redux DevTools",
"state": "ENABLED",
"webStoreUrl": "https://chrome.google.com/webstore/detail/lmhkpmbekcpmknklioeibfkpmmfibljd"
}
]
-
Uncaught TypeError: Cannot read properties of null (reading 'extensions_') at <anonymous>:1:45
Commented Feb 21 at 21:29
The use of chrome://system is quick, but this extension provides clickable html links, and includes all your disabled extensions. It even has a plain text list of titles and links for enabled and disabled in the page source as comment at the bottom!
"Export links of all extensions": https://chrome.google.com/webstore/detail/export-links-of-all-exten/cmeckkgeamghjhkepejgjockldoblhcb?hl=en
<!--
......................................................
Enabled
......................................................
TidyTab
https://chrome.google.com/webstore/detail/lkglfdjcamhjoggmabobhggmpfjhccff
Then you can paste those text links into an extension like below that opens them all up. Dont forget you can change the Site Access to On Click for extensions in its chrome settings page if its asking for more permissions than it seems like it needs.
Multilink https://chrome.google.com/webstore/detail/multilink/hakpaefefpemiaahboigpjchbmgkejaj?hl=en
-
1
-
1Despite the lack of upvotes, this should vie for first place. It provides the complete list, both active and inactive, in both HTML and text format. The text format is included as an HTML comment. And one can use this on Windows and MacOS, prob anywhere you can install Chrome extensions. Commented Mar 21, 2022 at 0:11
-
this extension is no longer available, 404 error. see my replacement answer.– tinkerCommented Jul 30 at 2:39
Use this extension that outputs a html web page of all the extensions installed. It also provides options to download the crx file for offline installation.
https://chromewebstore.google.com/detail/extension-exporter/doikmfpjbcjjimnbablebijofdbgfepb https://github.com/asheroto/Extension-Exporter