42

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.

2
  • 4
    he can select everything on the page with CTRL+A and copy it to Word / Excel / e-mail application ... and send it to you. Jan 6, 2017 at 13:31
  • 1
    @MátéJuhász, you can't use CTRL+A on this page.
    – Black
    Aug 6, 2018 at 13:59

4 Answers 4

51

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 in that it lists on 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.

4
  • 1
    When 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 get Google Translate : version 2_0_6. Credits stackoverflow.com/q/23428664/1066234
    – Avatar
    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? 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')). 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. Oct 7, 2021 at 19:42
10

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.

enter image description here

Then either:

  1. "File" > "Save Selected Items" to export to a text file, or

  2. "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.

4
  • 1
    Installing additional software isn't exactly the easiest route
    – Gremlin
    Jan 9, 2017 at 10:28
  • 3
    IMO 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. May 29, 2017 at 0:57
  • 2
    Nirsoft is also Windows only. Doesn't help Mac users.
    – RHPT
    Nov 12, 2017 at 3:22
  • 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. Apr 4, 2019 at 5:52
6

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"
    }
]
1
  • Uncaught TypeError: Cannot read properties of null (reading 'extensions_') at <anonymous>:1:45 Feb 21 at 21:29
4

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

2
  • 1
    This is fantastic! May 1, 2020 at 15:51
  • 1
    Despite 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. Mar 21, 2022 at 0:11

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .