diff --git a/core/main/client/browser.js b/core/main/client/browser.js index c493b185d..3c064a593 100644 --- a/core/main/client/browser.js +++ b/core/main/client/browser.js @@ -993,795 +993,7 @@ beef.browser = { * @example: if(beef.browser.javaEnabled()) { ... } */ javaEnabled:function () { - - if (!this.isIE()) { - - // Cross-browser Java Deployment Toolkit Script - // Source: http://java.com/js/deployJava.js - deployJava = function () { - var l = {core:["id", "class", "title", "style"], i18n:["lang", "dir"], events:["onclick", "ondblclick", "onmousedown", "onmouseup", "onmouseover", "onmousemove", "onmouseout", "onkeypress", "onkeydown", "onkeyup"], applet:["codebase", "code", "name", "archive", "object", "width", "height", "alt", "align", "hspace", "vspace"], object:["classid", "codebase", "codetype", "data", "type", "archive", "declare", "standby", "height", "width", "usemap", "name", "tabindex", "align", "border", "hspace", "vspace"]}; - var b = l.object.concat(l.core, l.i18n, l.events); - var m = l.applet.concat(l.core); - - function g(n) { - if (!d.debug) { - return - } - if (console.log) { - console.log(n) - } else { - alert(n) - } - } - - function k(o, n) { - if (o == null || o.length == 0) { - return true - } - var q = o.charAt(o.length - 1); - if (q != "+" && q != "*" && (o.indexOf("_") != -1 && q != "_")) { - o = o + "*"; - q = "*" - } - o = o.substring(0, o.length - 1); - if (o.length > 0) { - var p = o.charAt(o.length - 1); - if (p == "." || p == "_") { - o = o.substring(0, o.length - 1) - } - } - if (q == "*") { - return(n.indexOf(o) == 0) - } else { - if (q == "+") { - return o <= n - } - } - return false - } - - function e() { - var n = "//java.com/js/webstart.png"; - try { - return document.location.protocol.indexOf("http") != -1 ? n : "http:" + n - } catch (o) { - return"http:" + n - } - } - - function j(p, o) { - var n = p.length; - for (var q = 0; q < n; q++) { - if (p[q] === o) { - return true - } - } - return false - } - - function c(n) { - return j(m, n.toLowerCase()) - } - - function i(n) { - return j(b, n.toLowerCase()) - } - - function a(n) { - if ("MSIE" != deployJava.browserName) { - return true - } - if (deployJava.compareVersionToPattern(deployJava.getPlugin().version, ["10", "0", "0"], false, true)) { - return true - } - if (n == null) { - return false - } - return !k("1.6.0_33+", n) - } - - var d = {debug:null, version:"20120801", firefoxJavaVersion:null, myInterval:null, preInstallJREList:null, returnPage:null, brand:null, locale:null, installType:null, EAInstallEnabled:false, EarlyAccessURL:null, getJavaURL:"http://jdl.sun.com/webapps/getjava/BrowserRedirect?host=java.com", oldMimeType:"application/npruntime-scriptable-plugin;DeploymentToolkit", mimeType:"application/java-deployment-toolkit", launchButtonPNG:e(), browserName:null, browserName2:null, getJREs:function () { - var r = new Array(); - if (this.isPluginInstalled()) { - var q = this.getPlugin(); - var n = q.jvms; - for (var p = 0; p < n.getLength(); p++) { - r[p] = n.get(p).version - } - } else { - var o = this.getBrowser(); - if (o == "MSIE") { - if (this.testUsingActiveX("1.7.0")) { - r[0] = "1.7.0" - } else { - if (this.testUsingActiveX("1.6.0")) { - r[0] = "1.6.0" - } else { - if (this.testUsingActiveX("1.5.0")) { - r[0] = "1.5.0" - } else { - if (this.testUsingActiveX("1.4.2")) { - r[0] = "1.4.2" - } else { - if (this.testForMSVM()) { - r[0] = "1.1" - } - } - } - } - } - } else { - if (o == "Netscape Family") { - this.getJPIVersionUsingMimeType(); - if (this.firefoxJavaVersion != null) { - r[0] = this.firefoxJavaVersion - } else { - if (this.testUsingMimeTypes("1.7")) { - r[0] = "1.7.0" - } else { - if (this.testUsingMimeTypes("1.6")) { - r[0] = "1.6.0" - } else { - if (this.testUsingMimeTypes("1.5")) { - r[0] = "1.5.0" - } else { - if (this.testUsingMimeTypes("1.4.2")) { - r[0] = "1.4.2" - } else { - if (this.browserName2 == "Safari") { - if (this.testUsingPluginsArray("1.7.0")) { - r[0] = "1.7.0" - } else { - if (this.testUsingPluginsArray("1.6")) { - r[0] = "1.6.0" - } else { - if (this.testUsingPluginsArray("1.5")) { - r[0] = "1.5.0" - } else { - if (this.testUsingPluginsArray("1.4.2")) { - r[0] = "1.4.2" - } - } - } - } - } - } - } - } - } - } - } - } - } - if (this.debug) { - for (var p = 0; p < r.length; ++p) { - g("[getJREs()] We claim to have detected Java SE " + r[p]) - } - } - return r - }, installJRE:function (q, o) { - var n = false; - if (this.isPluginInstalled() && this.isAutoInstallEnabled(q)) { - var p = false; - if (this.isCallbackSupported()) { - p = this.getPlugin().installJRE(q, o) - } else { - p = this.getPlugin().installJRE(q) - } - if (p) { - this.refresh(); - if (this.returnPage != null) { - document.location = this.returnPage - } - } - return p - } else { - return this.installLatestJRE() - } - }, isAutoInstallEnabled:function (n) { - if (!this.isPluginInstalled()) { - return false - } - if (typeof n == "undefined") { - n = null - } - return a(n) - }, isCallbackSupported:function () { - return this.isPluginInstalled() && this.compareVersionToPattern(this.getPlugin().version, ["10", "2", "0"], false, true) - }, installLatestJRE:function (p) { - if (this.isPluginInstalled() && this.isAutoInstallEnabled()) { - var q = false; - if (this.isCallbackSupported()) { - q = this.getPlugin().installLatestJRE(p) - } else { - q = this.getPlugin().installLatestJRE() - } - if (q) { - this.refresh(); - if (this.returnPage != null) { - document.location = this.returnPage - } - } - return q - } else { - var o = this.getBrowser(); - var n = navigator.platform.toLowerCase(); - if ((this.EAInstallEnabled == "true") && (n.indexOf("win") != -1) && (this.EarlyAccessURL != null)) { - this.preInstallJREList = this.getJREs(); - if (this.returnPage != null) { - this.myInterval = setInterval("deployJava.poll()", 3000) - } - location.href = this.EarlyAccessURL; - return false - } else { - if (o == "MSIE") { - return this.IEInstall() - } else { - if ((o == "Netscape Family") && (n.indexOf("win32") != -1)) { - return this.FFInstall() - } else { - location.href = this.getJavaURL + ((this.returnPage != null) ? ("&returnPage=" + this.returnPage) : "") + ((this.locale != null) ? ("&locale=" + this.locale) : "") + ((this.brand != null) ? ("&brand=" + this.brand) : "") - } - } - return false - } - } - }, runApplet:function (o, t, q) { - if (q == "undefined" || q == null) { - q = "1.1" - } - var r = "^(\\d+)(?:\\.(\\d+)(?:\\.(\\d+)(?:_(\\d+))?)?)?$"; - var n = q.match(r); - if (this.returnPage == null) { - this.returnPage = document.location - } - if (n != null) { - var p = this.getBrowser(); - if (p != "?") { - if (this.versionCheck(q + "+")) { - this.writeAppletTag(o, t) - } else { - if (this.installJRE(q + "+")) { - this.refresh(); - location.href = document.location; - this.writeAppletTag(o, t) - } - } - } else { - this.writeAppletTag(o, t) - } - } else { - g("[runApplet()] Invalid minimumVersion argument to runApplet():" + q) - } - }, writeAppletTag:function (q, v) { - var n = "' - } - if (!u) { - p += '' - } - if (w) { - n += (' code="dummy"') - } - n += ">"; - document.write(n + "\n" + p + "\n" + r) - }, versionCheck:function (o) { - var u = 0; - var w = "^(\\d+)(?:\\.(\\d+)(?:\\.(\\d+)(?:_(\\d+))?)?)?(\\*|\\+)?$"; - var x = o.match(w); - if (x != null) { - var q = false; - var t = false; - var p = new Array(); - for (var r = 1; r < x.length; ++r) { - if ((typeof x[r] == "string") && (x[r] != "")) { - p[u] = x[r]; - u++ - } - } - if (p[p.length - 1] == "+") { - t = true; - q = false; - p.length-- - } else { - if (p[p.length - 1] == "*") { - t = false; - q = true; - p.length-- - } else { - if (p.length < 4) { - t = false; - q = true - } - } - } - var v = this.getJREs(); - for (var r = 0; r < v.length; ++r) { - if (this.compareVersionToPattern(v[r], p, q, t)) { - return true - } - } - return false - } else { - var n = "Invalid versionPattern passed to versionCheck: " + o; - g("[versionCheck()] " + n); - alert(n); - return false - } - }, isWebStartInstalled:function (q) { - var p = this.getBrowser(); - if (p == "?") { - return true - } - if (q == "undefined" || q == null) { - q = "1.4.2" - } - var o = false; - var r = "^(\\d+)(?:\\.(\\d+)(?:\\.(\\d+)(?:_(\\d+))?)?)?$"; - var n = q.match(r); - if (n != null) { - o = this.versionCheck(q + "+") - } else { - g("[isWebStartInstaller()] Invalid minimumVersion argument to isWebStartInstalled(): " + q); - o = this.versionCheck("1.4.2+") - } - return o - }, getJPIVersionUsingMimeType:function () { - for (var o = 0; o < navigator.mimeTypes.length; ++o) { - var p = navigator.mimeTypes[o].type; - var n = p.match(/^application\/x-java-applet;jpi-version=(.*)$/); - if (n != null) { - this.firefoxJavaVersion = n[1]; - if ("Opera" != this.browserName2) { - break - } - } - } - }, launchWebStartApplication:function (q) { - var n = navigator.userAgent.toLowerCase(); - this.getJPIVersionUsingMimeType(); - if (this.isWebStartInstalled("1.7.0") == false) { - if ((this.installJRE("1.7.0+") == false) || ((this.isWebStartInstalled("1.7.0") == false))) { - return false - } - } - var t = null; - if (document.documentURI) { - t = document.documentURI - } - if (t == null) { - t = document.URL - } - var o = this.getBrowser(); - var p; - if (o == "MSIE") { - p = '' - } else { - if (o == "Netscape Family") { - p = '' - } - } - if (document.body == "undefined" || document.body == null) { - document.write(p); - document.location = t - } else { - var r = document.createElement("div"); - r.id = "div1"; - r.style.position = "relative"; - r.style.left = "-10000px"; - r.style.margin = "0px auto"; - r.className = "dynamicDiv"; - r.innerHTML = p; - document.body.appendChild(r) - } - }, createWebStartLaunchButtonEx:function (p, o) { - if (this.returnPage == null) { - this.returnPage = p - } - var n = "javascript:deployJava.launchWebStartApplication('" + p + "');"; - document.write('') - }, createWebStartLaunchButton:function (p, o) { - if (this.returnPage == null) { - this.returnPage = p - } - var n = "javascript:if (!deployJava.isWebStartInstalled("" + o + "")) {if (deployJava.installLatestJRE()) {if (deployJava.launch("" + p + "")) {}}} else {if (deployJava.launch("" + p + "")) {}}"; - document.write('') - }, launch:function (n) { - document.location = n; - return true - }, isPluginInstalled:function () { - var n = this.getPlugin(); - if (n && n.jvms) { - return true - } else { - return false - } - }, isAutoUpdateEnabled:function () { - if (this.isPluginInstalled()) { - return this.getPlugin().isAutoUpdateEnabled() - } - return false - }, setAutoUpdateEnabled:function () { - if (this.isPluginInstalled()) { - return this.getPlugin().setAutoUpdateEnabled() - } - return false - }, setInstallerType:function (n) { - this.installType = n; - if (this.isPluginInstalled()) { - return this.getPlugin().setInstallerType(n) - } - return false - }, setAdditionalPackages:function (n) { - if (this.isPluginInstalled()) { - return this.getPlugin().setAdditionalPackages(n) - } - return false - }, setEarlyAccess:function (n) { - this.EAInstallEnabled = n - }, isPlugin2:function () { - if (this.isPluginInstalled()) { - if (this.versionCheck("1.6.0_10+")) { - try { - return this.getPlugin().isPlugin2() - } catch (n) { - } - } - } - return false - }, allowPlugin:function () { - this.getBrowser(); - var n = ("Safari" != this.browserName2 && "Opera" != this.browserName2); - return n - }, getPlugin:function () { - this.refresh(); - var n = null; - if (this.allowPlugin()) { - n = document.getElementById("deployJavaPlugin") - } - return n - }, compareVersionToPattern:function (u, o, q, r) { - if (u == undefined || o == undefined) { - return false - } - var v = "^(\\d+)(?:\\.(\\d+)(?:\\.(\\d+)(?:_(\\d+))?)?)?$"; - var w = u.match(v); - if (w != null) { - var t = 0; - var x = new Array(); - for (var p = 1; p < w.length; ++p) { - if ((typeof w[p] == "string") && (w[p] != "")) { - x[t] = w[p]; - t++ - } - } - var n = Math.min(x.length, o.length); - if (r) { - for (var p = 0; p < n; ++p) { - if (x[p] < o[p]) { - return false - } else { - if (x[p] > o[p]) { - return true - } - } - } - return true - } else { - for (var p = 0; p < n; ++p) { - if (x[p] != o[p]) { - return false - } - } - if (q) { - return true - } else { - return(x.length == o.length) - } - } - } else { - return false - } - }, getBrowser:function () { - if (this.browserName == null) { - var n = navigator.userAgent.toLowerCase(); - g("[getBrowser()] navigator.userAgent.toLowerCase() -> " + n); - if ((n.indexOf("msie") != -1) && (n.indexOf("opera") == -1)) { - this.browserName = "MSIE"; - this.browserName2 = "MSIE" - } else { - if (n.indexOf("iphone") != -1) { - this.browserName = "Netscape Family"; - this.browserName2 = "iPhone" - } else { - if ((n.indexOf("firefox") != -1) && (n.indexOf("opera") == -1)) { - this.browserName = "Netscape Family"; - this.browserName2 = "Firefox" - } else { - if (n.indexOf("chrome") != -1) { - this.browserName = "Netscape Family"; - this.browserName2 = "Chrome" - } else { - if (n.indexOf("safari") != -1) { - this.browserName = "Netscape Family"; - this.browserName2 = "Safari" - } else { - if ((n.indexOf("mozilla") != -1) && (n.indexOf("opera") == -1)) { - this.browserName = "Netscape Family"; - this.browserName2 = "Other" - } else { - if (n.indexOf("opera") != -1) { - this.browserName = "Netscape Family"; - this.browserName2 = "Opera" - } else { - this.browserName = "?"; - this.browserName2 = "unknown" - } - } - } - } - } - } - } - g("[getBrowser()] Detected browser name:" + this.browserName + ", " + this.browserName2) - } - return this.browserName - }, testUsingActiveX:function (n) { - var p = "JavaWebStart.isInstalled." + n + ".0"; - if (typeof ActiveXObject == "undefined" || !ActiveXObject) { - g("[testUsingActiveX()] Browser claims to be IE, but no ActiveXObject object?"); - return false - } - try { - return(new ActiveXObject(p) != null) - } catch (o) { - return false - } - }, testForMSVM:function () { - var o = "{08B0E5C0-4FCB-11CF-AAA5-00401C608500}"; - if (typeof oClientCaps != "undefined") { - var n = oClientCaps.getComponentVersion(o, "ComponentID"); - if ((n == "") || (n == "5,0,5000,0")) { - return false - } else { - return true - } - } else { - return false - } - }, testUsingMimeTypes:function (o) { - if (!navigator.mimeTypes) { - g("[testUsingMimeTypes()] Browser claims to be Netscape family, but no mimeTypes[] array?"); - return false - } - for (var p = 0; p < navigator.mimeTypes.length; ++p) { - s = navigator.mimeTypes[p].type; - var n = s.match(/^application\/x-java-applet\x3Bversion=(1\.8|1\.7|1\.6|1\.5|1\.4\.2)$/); - if (n != null) { - if (this.compareVersions(n[1], o)) { - return true - } - } - } - return false - }, testUsingPluginsArray:function (o) { - if ((!navigator.plugins) || (!navigator.plugins.length)) { - return false - } - var n = navigator.platform.toLowerCase(); - for (var p = 0; p < navigator.plugins.length; ++p) { - s = navigator.plugins[p].description; - if (s.search(/^Java Switchable Plug-in (Cocoa)/) != -1) { - if (this.compareVersions("1.5.0", o)) { - return true - } - } else { - if (s.search(/^Java/) != -1) { - if (n.indexOf("win") != -1) { - if (this.compareVersions("1.5.0", o) || this.compareVersions("1.6.0", o)) { - return true - } - } - } - } - } - if (this.compareVersions("1.5.0", o)) { - return true - } - return false - }, IEInstall:function () { - location.href = this.getJavaURL + ((this.returnPage != null) ? ("&returnPage=" + this.returnPage) : "") + ((this.locale != null) ? ("&locale=" + this.locale) : "") + ((this.brand != null) ? ("&brand=" + this.brand) : ""); - return false - }, done:function (o, n) { - }, FFInstall:function () { - location.href = this.getJavaURL + ((this.returnPage != null) ? ("&returnPage=" + this.returnPage) : "") + ((this.locale != null) ? ("&locale=" + this.locale) : "") + ((this.brand != null) ? ("&brand=" + this.brand) : "") + ((this.installType != null) ? ("&type=" + this.installType) : ""); - return false - }, compareVersions:function (q, r) { - var o = q.split("."); - var n = r.split("."); - for (var p = 0; p < o.length; ++p) { - o[p] = Number(o[p]) - } - for (var p = 0; p < n.length; ++p) { - n[p] = Number(n[p]) - } - if (o.length == 2) { - o[2] = 0 - } - if (o[0] > n[0]) { - return true - } - if (o[0] < n[0]) { - return false - } - if (o[1] > n[1]) { - return true - } - if (o[1] < n[1]) { - return false - } - if (o[2] > n[2]) { - return true - } - if (o[2] < n[2]) { - return false - } - return true - }, enableAlerts:function () { - this.browserName = null; - this.debug = true - }, poll:function () { - this.refresh(); - var n = this.getJREs(); - if ((this.preInstallJREList.length == 0) && (n.length != 0)) { - clearInterval(this.myInterval); - if (this.returnPage != null) { - location.href = this.returnPage - } - } - if ((this.preInstallJREList.length != 0) && (n.length != 0) && (this.preInstallJREList[0] != n[0])) { - clearInterval(this.myInterval); - if (this.returnPage != null) { - location.href = this.returnPage - } - } - }, writePluginTag:function () { - var n = this.getBrowser(); - if (n == "MSIE") { - document.write('') - } else { - if (n == "Netscape Family" && this.allowPlugin()) { - this.writeEmbedTag() - } - } - }, refresh:function () { - navigator.plugins.refresh(false); - var n = this.getBrowser(); - if (n == "Netscape Family" && this.allowPlugin()) { - var o = document.getElementById("deployJavaPlugin"); - if (o == null) { - this.writeEmbedTag() - } - } - }, writeEmbedTag:function () { - var n = false; - if (navigator.mimeTypes != null) { - for (var o = 0; o < navigator.mimeTypes.length; o++) { - if (navigator.mimeTypes[o].type == this.mimeType) { - if (navigator.mimeTypes[o].enabledPlugin) { - document.write(''); - n = true - } - } - } - if (!n) { - for (var o = 0; o < navigator.mimeTypes.length; o++) { - if (navigator.mimeTypes[o].type == this.oldMimeType) { - if (navigator.mimeTypes[o].enabledPlugin) { - document.write('') - } - } - } - } - } - }}; - d.writePluginTag(); - if (d.locale == null) { - var h = null; - if (h == null) { - try { - h = navigator.userLanguage - } catch (f) { - } - } - if (h == null) { - try { - h = navigator.systemLanguage - } catch (f) { - } - } - if (h == null) { - try { - h = navigator.language - } catch (f) { - } - } - if (h != null) { - h.replace("-", "_"); - d.locale = h - } - } - return d - }(); - - var versionJRE = deployJava.getJREs(); - - if (versionJRE != '') { - return true; - } else { - return false; - } - } - else { - function testUsingActiveX(n) { - var p = "JavaWebStart.isInstalled." + n + ".0"; - if (typeof ActiveXObject == "undefined" || !ActiveXObject) { - g("[testUsingActiveX()] Browser claims to be IE, but no ActiveXObject object?"); - return false - } - try { - return (new ActiveXObject(p) != null) - } catch (o) { - return false - } - } - - if (testUsingActiveX("1.7.0")) { - return true; - } else { - if (testUsingActiveX("1.6.0")) { - return true; - } else { - if (testUsingActiveX("1.5.0")) { - return true; - } else { - if (testUsingActiveX("1.4.2")) { - return true; - } - else { - return false; - } - } - } - } - - - } - + return false; }, /**