diff -r 000000000000 -r 6474c204b198 addon-sdk/source/examples/library-detector/data/library-detector.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/addon-sdk/source/examples/library-detector/data/library-detector.js Wed Dec 31 06:09:35 2014 +0100 @@ -0,0 +1,97 @@ +/* +The code in this file is adapted from the original +Library Detector add-on +(https://addons.mozilla.org/en-US/firefox/addon/library-detector/) written by +Paul Bakaus (http://paulbakaus.com/) and made available under the +MIT License (http://www.opensource.org/licenses/mit-license.php). +*/ + +var LD_tests = { + + 'jQuery': { + test: function(win) { + var jq = win.jQuery || win.$ || win.$jq || win.$j; + if(jq && jq.fn && jq.fn.jquery) { + return { version: jq.fn.jquery }; + } else { + return false; + } + } + }, + + 'jQuery UI': { + //phonehome: 'http://jqueryui.com/phone_home', + test: function(win) { + + var jq = win.jQuery || win.$ || win.$jq || win.$j; + if(jq && jq.fn && jq.fn.jquery && jq.ui) { + + var plugins = 'accordion,datepicker,dialog,draggable,droppable,progressbar,resizable,selectable,slider,menu,grid,tabs'.split(','), concat = []; + 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)); }; + + return { version: jq.ui.version, details: concat.length ? 'Plugins used: '+concat.join(',') : '' }; + } else { + return false; + } + + } + }, + + 'MooTools': { + test: function(win) { + if(win.MooTools && win.MooTools.version) { + return { version: win.MooTools.version }; + } else { + return false; + } + } + }, + + 'YUI': { + test: function(win) { + if(win.YAHOO && win.YAHOO.VERSION) { + return { version: win.YAHOO.VERSION }; + } else { + return false; + } + } + }, + + 'Closure': { + test: function(win) { + if(win.goog) { + return { version: '2.0' }; + } + return false; + } + }, + + 'Modernizr': { + test: function(win) { + if(win.Modernizr) { + return { version: win.Modernizr._version }; + } + return false; + } + }, + + +}; + +function testLibraries() { + var win = unsafeWindow; + var libraryList = []; + for(var i in LD_tests) { + var passed = LD_tests[i].test(win); + if (passed) { + let libraryInfo = { + name: i, + version: passed.version + }; + libraryList.push(libraryInfo); + } + } + self.postMessage(libraryList); +} + +testLibraries(); \ No newline at end of file