GithubHelp home page GithubHelp logo

johnmichel / library-detector-for-chrome Goto Github PK

View Code? Open in Web Editor NEW
642.0 18.0 109.0 1.63 MB

🔍 Extension that detects which JavaScript libraries are running on a page

Home Page: https://chrome.google.com/webstore/detail/cgaocdmhkmfnkdkbnckgmpopcbpaaejo

License: MIT License

JavaScript 98.78% Shell 0.47% HTML 0.75%
library-detector javascript chrome javascript-libraries browser-extension javascript-framework detection web

library-detector-for-chrome's People

Contributors

andrewbredow avatar arnaudligny avatar bluesmoon avatar bmack avatar bsvensson avatar budnix avatar connorjclark avatar developit avatar e-krebs avatar eliotsykes avatar gdabdoub avatar housseindjirdeh avatar ithinkihaveacat avatar jimmont avatar johnmichel avatar julianshapiro avatar moerazem avatar mostafa-hisham avatar pajaydev avatar patrickhulce avatar robpataki avatar rviscomi avatar serkanyersen avatar summercms avatar suvjunmd avatar tancnle avatar tkadlec avatar twistedpair avatar vinicius73 avatar wellingguzman avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

library-detector-for-chrome's Issues

GWT support

GWT support has been removed because it accessed iframes (which is not strictly required for GWT, but is what most people use because it's safer: the iframe acts as a sandbox).

There are however other means of detecting GWT, admittedly less reliable but still:

  • many (most) applications will have a document.gwt_uid expando.
  • many (most) applications will have a document.body.__listener expando; if you can find an element with both a __listener and __eventBits expandos you can be sure it's GWT, but it's unlikely you'll find that on document.body.
  • many applications have an iframe named __gwt_historyFrame (note: it's only needed for history support in IE6/IE7, so it won't last long)
  • more modern GWT applications will have a window.__gwt_activeModules variable.
  • applications using JsonpRequestBuilder will have window.__gwt_jsonp__ and window.__gwt_jsonp_counter__ variables

To limit warnings, you could also only look at iframes that have a name, a negativetabIndex and whose style makes it invisible (position: absolute; width: 0; height: 0; more modern apps will also have left: -1000px; top: -1000px but it's not widespread yet, and those will also be the ones with a window.__gwt_activeModules)

You can try it on https://groups.google.com/forum/ and http://www.gwtproject.org (among others)

5.1.0 release?

When you get some time, could we get a new release? Lighthouse is eager to include the new Preact/React detections from @developit. :)

Thanks!

Still alive?

This repo seems to be abandoned once more :( Is anybody there?

Update Manifest to version 2

Just a placeholder for this task. I started it on my side, finding only two lines that needed changes, but now the extensions installs but does not function in my fork. I've never worked with extensions before, so I'll leave this to you with better results.

port it back to Firefox

Currently the original Firefox version doesn’t work in latest Firefox. Considering also supporting Firefox?

LD icon missing at times

The space just to the right of the red /F icon is blank.
Hover over it, and tool tip "Library Detector" is displayed.

When 1 or more libraries detected, their logos are shown.
So the Library Detector brand never gets seen.

2015-04-25 at 9 44 22 am

asset-manifest.json

Every page loaded in Chrome with this extension enabled is now showing a 404'd request on /asset-manifest.json.

Attached is a screenshot from this very page.

This may be related - I'm no longer to login to Atlassian sites (via id.atlassian.com) unless this extension is disabled.

image

Detect KendoUI?

Can you add KendoUI to the list of libraries detected, please?

Chromium 4.02

I installed this extension and it does it appear in my extensions list. However, I don't see the library favicons in my URL bar. Possible this just works in Chrome but not Chromium yet?

(Love the Firefox version)

X-Domain error on injected scripts

This appeared after updating the manifest file... I need to spend some time reviewing the new security implications before this can be released.

Review supported libraries

Review currently supported libraries for new icons, current version detection.

Search for new libraries that are detectable and should be added to the plugin.

Leaflet detection not enough restrictive

For example on https://contacts.google.com/preview/all it detects the Leaflet library with an undefined version.
I think it's because the name is too short: "L".

I suggest we could force control of "version" property to be sure it's really the Leaflet lib:

'Leaflet': {
        icon: 'leaflet',
        url: 'http://leafletjs.com',
        test: function(win) {
            if (win.L && win.L.version) {
                return {version: win.L.version};
            }
            return false;
        }
    },

Uncaught SyntaxError: Unexpected identifier (libraries.js:729)

An error is logged in Chrome Dev Tools coming from libraries.js line 729.
It seems there is a wrong character instead of a space between || and UNKNOWN_VERSION (hex:C2A0).
I'm using version v4.3.0.

return {version: win.RightJS.version || UNKNOWN_VERSION};

Better support for library loaders

Add an asynchronous callback detection method for libraries that don't have all of their information available on page load. For example, we would see that we are loading Sproutcore, register a timer (or similar method) with a callback to update the library information when it is finished loading.

Allow unknown versions

In HTTPArchive/legacy.httparchive.org#77 we're exploring the possibility of detecting third party JS libraries during the HTTP Archive crawl. This project seems like a great fit.

One additional feature we're looking to have is the ability to know when a library is detected but its version is unknown. Is this feasible to add or is there a practical reason not to do it? I can imagine that it may lead to more false positives.

Some icons are malformed

The jquery icon (just look at the plugin while viewing Github) is twice the width it should be. I'd add a screenshot if Github allowed, but it is easy enough to reproduce.

Lo-Dash library detected as Underscore

Lo-Dash, which is a popular fork of Underscore, is being detected as Underscore.

For an example of this behavior, you can visit http://lodash.com/. This is the website for Lo-Dash, which is itself using Lo-Dash 2.4.1. The Library Detector for Chrome is displaying this as Underscore 2.4.1.

Alive?

@andrewbredow Is this project still alive? You need contributors?
This project is great. I would like him to develop.

New release?

@johnmichel There's been a few updates since the last release (Vue detection has improved + Next/Nuxt checks have been added)

Would really appreciate it if you can kick off a new release when you get the chance so we can have these checks in Lighthouse :)

Multiple libraries

Find un-obnoxious way to indicate when multiple libraries are being used on the same site

Add a few new libraries and increase coverage for others

I'd like to contribute some new/improved tests for libraries that we created a while ago when using Library Detector's code for a project:

  • New libraries: swfobject, flexslider, moment-timezone (plug-in for Moment.js), json3, pep, spf, numeral

  • Updated tests: Leaflet, Socket.IO, RequireJS, Pixi.js, Moment.js

If you're interested in integrating these tests, should I open a single PR for all of them, or an invididual PR for each library?

Remove "(not detectable)" from title

Many modern, cool Javascript libraries are early in development and not messing with version numbers yet. Let's just remove this filler text and show only the title under this circumstance.

jQuery slim version not detected

I noticed this here: GoogleChrome/lighthouse#3624 (comment)

The jQuery slim version string

3.2.1 -ajax,-ajax/jsonp,-ajax/load,-ajax/parseXML,-ajax/script,-ajax/var/location,-ajax/var/nonce,-ajax/var/rquery,-ajax/xhr,-manipulation/_evalUrl,-event/ajax,-effects,-effects/Tween,-effects/animatedSelector

Is not correctly detected as 3.2.1.

Allow user to copy paste list of libraries and versions

Hello,

It's already great that you can see the list of libraries used.
As far as I can tell, you need to take a screenshot if you want to capture the list of libraries and versions.

Suggestion: add "Copy extension list to clipboard" to the menu.

Nuxt.js is still not detected in SSR mode

Hello.

I have a number of Nuxt.js websites. After #148 the Nuxt.js can now be detected if mode="spa". However, if mode="universal" (the default) then the extension can't detect Nuxt.

I triple checked. The window.$nuxt does exist in all my websites.

doesnt display

the only thing i see is a blank icon in the extensions bar

EDIT: Some of my sites that have jQuery don't display in the extensions bar when there is in fact jQuery on my site

Perform more specific tests for global objects

We are probably being overzealous to check for only a Global variable for some libraries. For example, Instead of checking for if (Window.SC), let's try to find a property or other key that should always be present in the most barebone set of features offered by the library, like if (win.SC && win.SC.bundleDidLoad). This may not be possible for all libraries...

Improve Vue detection

Similar to @developit's PR for improving React detection, would be amazing if we can do the same for Vue by checking for specific properties instead of just relying on global variables.

I'll try and find some time in the coming week to look into this 🎉

Wrong react detection algoritm

For example spotify web player is made with react. I't not detects this.
Open DEV tools and type:

document.querySelector('[data-reactroot], [data-reactid]');

Please update the detection.
But you should probably wait for some time for ex.

var selector = '[data-reactroot], [data-reactid]';
function checkForReact() {
    var runningReact = !!document.querySelector(selector);
    if (runningReact) {
        chrome.runtime.sendMessage({
            react: true
        });
    } else {
        // React isn't currently present, check again in a second in case it's
        // loaded after the page is initialized.
        setTimeout(checkForReact, 1000);
    }
}

How to use?

I cannot find the icon in address bar.
I click the icon in extension menu, but nothing happen.

Extend to more than just JS libraries

It can be useful to detect more than a specific JS library on a site (like a CMS tool for example). PRs have already been submitted to detect WordPress and Shopify (#127, #131) on a site.

We may want to change the naming/description of this tool to not just be a js-library-detector. Something like technology-detector might work.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.