addon-sdk/source/examples/library-detector/data/library-detector.js

Wed, 31 Dec 2014 06:09:35 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 06:09:35 +0100
changeset 0
6474c204b198
permissions
-rwxr-xr-x

Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.

     1 /*
     2 The code in this file is adapted from the original
     3 Library Detector add-on
     4 (https://addons.mozilla.org/en-US/firefox/addon/library-detector/) written by
     5 Paul Bakaus (http://paulbakaus.com/) and made available under the
     6 MIT License (http://www.opensource.org/licenses/mit-license.php).
     7 */
     9 var LD_tests = {
    11     'jQuery': {
    12         test: function(win) {
    13             var jq = win.jQuery || win.$ || win.$jq || win.$j;
    14             if(jq && jq.fn && jq.fn.jquery) {
    15                 return { version: jq.fn.jquery };
    16             } else {
    17                 return false;
    18             }
    19         }
    20     },
    22     'jQuery UI': {
    23         //phonehome: 'http://jqueryui.com/phone_home',
    24         test: function(win) {
    26             var jq = win.jQuery || win.$ || win.$jq || win.$j;
    27             if(jq && jq.fn && jq.fn.jquery && jq.ui) {
    29                 var plugins = 'accordion,datepicker,dialog,draggable,droppable,progressbar,resizable,selectable,slider,menu,grid,tabs'.split(','), concat = [];
    30                 for (var i=0; i < plugins.length; i++) { if(jq.ui[plugins[i]]) concat.push(plugins[i].substr(0,1).toUpperCase() + plugins[i].substr(1)); };
    32                 return { version: jq.ui.version, details: concat.length ? 'Plugins used: '+concat.join(',') : '' };
    33             } else {
    34                 return false;
    35             }
    37         }
    38     },
    40     'MooTools': {
    41         test: function(win) {
    42             if(win.MooTools && win.MooTools.version) {
    43                 return { version: win.MooTools.version };
    44             } else {
    45                 return false;
    46             }
    47         }
    48     },
    50     'YUI': {
    51         test: function(win) {
    52             if(win.YAHOO && win.YAHOO.VERSION) {
    53                 return { version: win.YAHOO.VERSION };
    54             } else {
    55                 return false;
    56             }
    57         }
    58     },
    60     'Closure': {
    61         test: function(win) {
    62             if(win.goog) {
    63                 return { version: '2.0' };
    64             }
    65             return false;
    66         }
    67     },
    69     'Modernizr': {
    70         test: function(win) {
    71             if(win.Modernizr) {
    72                 return { version: win.Modernizr._version };
    73             }
    74             return false;
    75         }
    76     },
    79 };
    81 function testLibraries() {
    82   var win = unsafeWindow;
    83   var libraryList = [];
    84   for(var i in LD_tests) {
    85     var passed = LD_tests[i].test(win);
    86     if (passed) {
    87       let libraryInfo = {
    88         name: i,
    89         version: passed.version
    90       };
    91       libraryList.push(libraryInfo);
    92     }
    93   }
    94   self.postMessage(libraryList);
    95 }
    97 testLibraries();

mercurial