From 1335f57a4664876f6b836822d2c233ae5db47623 Mon Sep 17 00:00:00 2001 From: bcoles Date: Mon, 14 May 2012 20:29:18 +0930 Subject: [PATCH] Browser plugins are now passed through unique() --- core/main/client/browser.js | 54 +++++++++++++++++++++---------------- 1 file changed, 31 insertions(+), 23 deletions(-) diff --git a/core/main/client/browser.js b/core/main/client/browser.js index 321d5f0c4..53d6505e5 100644 --- a/core/main/client/browser.js +++ b/core/main/client/browser.js @@ -597,29 +597,37 @@ return !!window.history.replaceState && window.navigator.userAgent.match(/Firefo * Returns the list of plugins installed in the browser. */ getPlugins: function() { - var results = ''; - if (this.isIE()) - { - results = this.getPluginsIE(); - } else { - if (navigator.plugins && navigator.plugins.length > 0) - { - var length = navigator.plugins.length; - for (var i=0; i < length; i++) - { - if (i != 0) - results += '\n'; - if(beef.browser.isFF()){ //FF returns exact plugin versions - results += navigator.plugins[i].name + '-v.' + navigator.plugins[i].version; - }else{ // Webkit and Presto (Opera) doesn't support the version attribute, and - // sometimes they store plugin version in description (Real, Adobe) - results += navigator.plugins[i].name;// + '-desc.' + navigator.plugins[i].description; - } - } - } else { - results = 'navigator.plugins is not supported in this browser!'; - } - } + + var results; + Array.prototype.unique = function() { + var o = {}, i, l = this.length, r = []; + for(i=0; i 0) { + results = new Array(); + for (var i=0; i < navigator.plugins.length; i++) { + + // Firefox returns exact plugin versions + if (beef.browser.isFF()) results[i] = navigator.plugins[i].name + '-v.' + navigator.plugins[i].version; + + // Webkit and Presto (Opera) + // Don't support the version attribute + // Sometimes store the version in description (Real, Adobe) + else results[i] = navigator.plugins[i].name;// + '-desc.' + navigator.plugins[i].description; + } + results = results.unique().toString(); + + // All browsers that don't support navigator.plugins + } else results = 'navigator.plugins is not supported in this browser!'; + + // Return results return results; },