From f7dfc86f06509603a552e08a80500a7021272669 Mon Sep 17 00:00:00 2001 From: Daniel Schneider Date: Wed, 18 Feb 2015 00:42:21 +0100 Subject: [PATCH 01/17] Added mapping downloadDirectoryWin to browser.download.dir Added MIME type application/attemptdata for files with extension .attemptdata and download policy saveToDisk = true and alwaysAsk = false Added mapping showReloadWarning to seb.reload.warning --- browser/apps/chrome/defaults/seb/config.json | 18 ++--- .../chrome/defaults/seb/preferences/prefs.js | 7 ++ .../chrome/defaults/seb/profile/mimeTypes.rdf | 15 ++++ browser/apps/modules/winctrl.jsm | 73 ++++++++++--------- 4 files changed, 68 insertions(+), 45 deletions(-) diff --git a/browser/apps/chrome/defaults/seb/config.json b/browser/apps/chrome/defaults/seb/config.json index 6f5bd19..d6b0c0b 100644 --- a/browser/apps/chrome/defaults/seb/config.json +++ b/browser/apps/chrome/defaults/seb/config.json @@ -11,9 +11,9 @@ "network.proxy.ftp_port" : 0, "network.proxy.socks" : "", "network.proxy.socks_port" : 0, - "network.proxy.no_proxies_on" : "localhost,127.0.0.1" - - }, + "network.proxy.no_proxies_on" : "localhost,127.0.0.1", + "browser.download.dir" : "" + }, "seb.url" : "http://www.safeexambrowser.org", "seb.language" : "en-US", "seb.request.header" : "X-SafeExamBrowser-RequestHash", @@ -24,17 +24,17 @@ "seb.mainWindow.titlebar.enabled" : false, "seb.popupWindows.titlebar.enabled" : true, "seb.mainWindow.screen" : { - "fullsize" : true, + "fullsize" : true, "width" : 800, "height" : 600, - "position" : "center" + "position" : "center" }, "seb.popupWindows.screen" : { - "fullsize" : false, + "fullsize" : false, "width" : 800, "height" : 600, "position" : "center", - "offset" : 40 + "offset" : 40 }, "seb.trusted.content" : true, "seb.pattern.regex" : false, @@ -66,8 +66,8 @@ "seb.showall.keycode" : "VK_F1", "seb.popup.policy" : 2, "seb.distinct.popup" : true, - "seb.bypass.cache" : true, - "seb.removeProfile" : true, + "seb.bypass.cache" : true, + "seb.removeProfile" : true, "seb.alert.controller" : true, "seb.screenkeyboard.controller" : true, "seb.screenshot.controller" : false, diff --git a/browser/apps/chrome/defaults/seb/preferences/prefs.js b/browser/apps/chrome/defaults/seb/preferences/prefs.js index fef67b9..12a8bb4 100644 --- a/browser/apps/chrome/defaults/seb/preferences/prefs.js +++ b/browser/apps/chrome/defaults/seb/preferences/prefs.js @@ -14,8 +14,15 @@ user_pref("app.update.enabled", false); user_pref("browser.chromeURL", "chrome://seb/content/seb.xul"); user_pref("browser.startup.homepage_override.mstone", "ignore"); user_pref("browser.dom.window.dump.enabled", true); +user_pref("browser.download.folderList", 2); +user_pref("browser.download.useDownloadDir", true); +user_pref("browser.download.manager.openDelay", 0); user_pref("browser.download.manager.retention", 0); +user_pref("browser.download.manager.showAlertInterval", 0); +user_pref("browser.download.manager.showAlertOnComplete", true); +user_pref("browser.download.manager.showWhenStarting", false); user_pref("browser.download.manager.useWindow", false); +user_pref("browser.helperApps.alwaysAsk.force", false); user_pref("browser.link.open_newwindow", 2); user_pref("browser.startup.homepage_override.mstone", "ignore"); user_pref("browser.zoom.full", true); diff --git a/browser/apps/chrome/defaults/seb/profile/mimeTypes.rdf b/browser/apps/chrome/defaults/seb/profile/mimeTypes.rdf index 3dd706e..5d13b0d 100644 --- a/browser/apps/chrome/defaults/seb/profile/mimeTypes.rdf +++ b/browser/apps/chrome/defaults/seb/profile/mimeTypes.rdf @@ -16,4 +16,19 @@ + + + + + + + + + diff --git a/browser/apps/modules/winctrl.jsm b/browser/apps/modules/winctrl.jsm index caf20fd..d3f5393 100644 --- a/browser/apps/modules/winctrl.jsm +++ b/browser/apps/modules/winctrl.jsm @@ -19,15 +19,15 @@ * * Contributor(s): * Stefan Schneider - * + * * ***** END LICENSE BLOCK ***** */ /* ***** GLOBAL winctrl SINGLETON ***** -* *************************************/ +* *************************************/ /* for javascript module import - see: https://developer.mozilla.org/en/Components.utils.import + see: https://developer.mozilla.org/en/Components.utils.import */ var EXPORTED_SYMBOLS = ["winctrl"]; Components.utils.import("resource://modules/xullib.jsm"); @@ -49,7 +49,7 @@ var winctrl = (function() { "seb.shutdown.enabled" : "allowQuit", "seb.popup.policy" : "newBrowserWindowByLinkPolicy", "seb.shutdown.url" : "quitURL", - "seb.shutdown.password" : "hashedQuitPassword", + "seb.shutdown.password" : "hashedQuitPassword", "seb.navigation.enabled" : "allowBrowsingBackForward", "seb.messaging.url" : "browserMessagingUrl", "seb.messaging.socket" : "browserMessagingSocket", @@ -72,31 +72,33 @@ var winctrl = (function() { "network.proxy.socks_port" : proxySocksPort, "seb.removeProfile" : "removeBrowserProfile", "seb.restart.url" : "restartExamURL", - "seb.embedded.certs" : embeddedCerts + "seb.embedded.certs" : embeddedCerts, + "seb.reload.warning" : "showReloadWarning", + "browser.download.dir" : "downloadDirectoryWin", }, pos = { 0 : "left", 1 : "center", 2 : "right" }; - + function toString () { return "winctrl"; } - + function init(conf,cb) { x.debug("init winctrl"); config = conf; cb.call(null,true); } - + function hasParamMapping(param) { if (config === null) { return null; } return mapping[param]; } - + function getParam(param) { if (config === null) { return null; @@ -121,9 +123,9 @@ var winctrl = (function() { return null; } } - + function mainWindowScreen() { - var ret = {}; + var ret = {}; ret['fullsize'] = (config["browserViewMode"] == 0) ? false : true; ret['width'] = config["mainBrowserWindowWidth"]; ret['height'] = config["mainBrowserWindowHeight"]; @@ -134,9 +136,9 @@ var winctrl = (function() { } return ret; } - + function popupScreen() { - var ret = {}; + var ret = {}; ret['fullsize'] = false; ret['width'] = config["newBrowserWindowByLinkWidth"]; ret['height'] = config["newBrowserWindowByLinkHeight"]; @@ -147,12 +149,12 @@ var winctrl = (function() { } return ret; } - + function titleBarEnabled() { var ret = (config["browserViewMode"] == 0) ? true : false; return ret; } - + function urlFilterRegex() { var ret = (config["urlFilterRegex"] == 1) ? true : false; return ret; @@ -162,17 +164,17 @@ var winctrl = (function() { var ret = (config["urlFilterTrustedContent"] == 0) ? true : false; return ret; } - + function browserScreenKeyboard() { var ret = (config["browserScreenKeyboard"] == 1) ? true : false; return ret; } - + function browserExamKey() { // add some logic return config["browserExamKey"]; } - + function proxyType() { // see http://kb.mozillazine.org/Firefox_:_FAQs_:_About:config_Entries // if no proxy object, don't map anything @@ -193,7 +195,7 @@ var winctrl = (function() { } return null; } - + function proxyAutoConfig() { if (!config["proxies"]) { return null; @@ -203,7 +205,7 @@ var winctrl = (function() { } return config["proxies"]["AutoConfigurationURL"]; } - + function proxyHttp() { if (!config["proxies"]) { return null; @@ -213,7 +215,7 @@ var winctrl = (function() { } return config["proxies"]["HTTPProxy"]; } - + function proxyHttpPort() { if (!config["proxies"]) { return null; @@ -223,7 +225,7 @@ var winctrl = (function() { } return config["proxies"]["HTTPPort"]; } - + function proxyHttps() { if (!config["proxies"]) { return null; @@ -233,7 +235,7 @@ var winctrl = (function() { } return config["proxies"]["HTTPSProxy"]; } - + function proxyHttpsPort() { if (!config["proxies"]) { return null; @@ -243,7 +245,7 @@ var winctrl = (function() { } return config["proxies"]["HTTPSPort"]; } - + function proxyFtp() { if (!config["proxies"]) { return null; @@ -253,7 +255,7 @@ var winctrl = (function() { } return config["proxies"]["FTPProxy"]; } - + function proxyFtpPort() { if (!config["proxies"]) { return null; @@ -263,7 +265,7 @@ var winctrl = (function() { } return config["proxies"]["FTPPort"]; } - + function proxySocks() { if (!config["proxies"]) { return null; @@ -273,7 +275,7 @@ var winctrl = (function() { } return config["proxies"]["SOCKSProxy"]; } - + function proxySocksPort() { if (!config["proxies"]) { return null; @@ -283,7 +285,7 @@ var winctrl = (function() { } return config["proxies"]["SOCKSPort"]; } - + function proxyExceptionsList() { if (!config["proxies"]) { return null; @@ -298,7 +300,7 @@ var winctrl = (function() { } return config["proxies"]["ExceptionsList"].join(",") + ",localhost,127.0.0.1"; } - + function embeddedCerts() { if (!config["embeddedCertificates"]) { return null; @@ -308,7 +310,7 @@ var winctrl = (function() { addCert(certlist[i]); } } - + function addCert(cert) { //https://developer.mozilla.org/en-US/docs/Cert_override.txt try { @@ -326,18 +328,18 @@ var winctrl = (function() { if (fullhost.length==2) { host = fullhost[0]; port = parseInt(fullhost[1]); - } - overrideService.rememberValidityOverride(host,port,x509,flags,true); + } + overrideService.rememberValidityOverride(host,port,x509,flags,true); } catch (e) { x.err(e); } } - + function paramHandler(fn) { - return eval(fn).call(null); + return eval(fn).call(null); } - + return { toString : toString, init : init, @@ -345,4 +347,3 @@ var winctrl = (function() { getParam : getParam }; }()); - From 8a96f27ea06dbaaf3111a9d47096693433c71c8e Mon Sep 17 00:00:00 2001 From: Daniel Schneider Date: Wed, 25 Feb 2015 02:11:57 +0100 Subject: [PATCH 02/17] Added mapping for zoomMode (SEB) to browser.zoom.full (seb). --- browser/apps/chrome/defaults/seb/config.json | 3 ++- browser/apps/modules/winctrl.jsm | 14 ++++++++++---- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/browser/apps/chrome/defaults/seb/config.json b/browser/apps/chrome/defaults/seb/config.json index d6b0c0b..920dfc7 100644 --- a/browser/apps/chrome/defaults/seb/config.json +++ b/browser/apps/chrome/defaults/seb/config.json @@ -12,7 +12,8 @@ "network.proxy.socks" : "", "network.proxy.socks_port" : 0, "network.proxy.no_proxies_on" : "localhost,127.0.0.1", - "browser.download.dir" : "" + "browser.download.dir" : "", + "browser.zoom.full" : true }, "seb.url" : "http://www.safeexambrowser.org", "seb.language" : "en-US", diff --git a/browser/apps/modules/winctrl.jsm b/browser/apps/modules/winctrl.jsm index d3f5393..6c194cd 100644 --- a/browser/apps/modules/winctrl.jsm +++ b/browser/apps/modules/winctrl.jsm @@ -75,6 +75,7 @@ var winctrl = (function() { "seb.embedded.certs" : embeddedCerts, "seb.reload.warning" : "showReloadWarning", "browser.download.dir" : "downloadDirectoryWin", + "browser.zoom.full" : browserZoomFull }, pos = { 0 : "left", @@ -150,10 +151,15 @@ var winctrl = (function() { return ret; } - function titleBarEnabled() { - var ret = (config["browserViewMode"] == 0) ? true : false; - return ret; - } + function titleBarEnabled() { + var ret = (config["browserViewMode"] == 0) ? true : false; + return ret; + } + + function browserZoomFull() { + var ret = (config["zoomMode"] == 0) ? true : false; + return ret; + } function urlFilterRegex() { var ret = (config["urlFilterRegex"] == 1) ? true : false; From 2daeb95597a4f69161c116900b299e40d41044b6 Mon Sep 17 00:00:00 2001 From: Daniel Schneider Date: Wed, 25 Feb 2015 02:27:49 +0100 Subject: [PATCH 03/17] Mapping for security.enable_java MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Added mapping for „enableJava“ (SEB) to „security.enable_java“ (seb). --- browser/apps/chrome/defaults/seb/config.json | 3 ++- browser/apps/modules/winctrl.jsm | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/browser/apps/chrome/defaults/seb/config.json b/browser/apps/chrome/defaults/seb/config.json index 920dfc7..b834d8f 100644 --- a/browser/apps/chrome/defaults/seb/config.json +++ b/browser/apps/chrome/defaults/seb/config.json @@ -13,7 +13,8 @@ "network.proxy.socks_port" : 0, "network.proxy.no_proxies_on" : "localhost,127.0.0.1", "browser.download.dir" : "", - "browser.zoom.full" : true + "browser.zoom.full" : true, + "security.enable_java" : false }, "seb.url" : "http://www.safeexambrowser.org", "seb.language" : "en-US", diff --git a/browser/apps/modules/winctrl.jsm b/browser/apps/modules/winctrl.jsm index 6c194cd..eba2234 100644 --- a/browser/apps/modules/winctrl.jsm +++ b/browser/apps/modules/winctrl.jsm @@ -75,7 +75,8 @@ var winctrl = (function() { "seb.embedded.certs" : embeddedCerts, "seb.reload.warning" : "showReloadWarning", "browser.download.dir" : "downloadDirectoryWin", - "browser.zoom.full" : browserZoomFull + "browser.zoom.full" : browserZoomFull, + "security.enable_java" : "enableJava" }, pos = { 0 : "left", From 7f2b139606e77c7e5a411a765da5d2b27fb4f59b Mon Sep 17 00:00:00 2001 From: Daniel Schneider Date: Thu, 26 Feb 2015 04:18:22 +0100 Subject: [PATCH 04/17] Added more mappings and fixed Flash. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Added user_pref("dom.ipc.plugins.flash.disable-protected-mode", true) which prevents recent versions of Flash running in the crash-prone protected mode, which also prevented Flash to work in SEB depending on the kiosk mode. Added mapping for „enableZoomPage“ and „enableZoomText“ (SEB) using „browser.zoom.maxPercent“ and "browser.zoom.minPercent" (seb). Added mapping for „enableJavaScript“ (SEB) to „javascript.enabled“ (seb). Added mapping for „blockPopUpWindows“ (SEB) to „dom.disable_open_during_load“ (seb). Added mapping for „allowSpellCheck“ (SEB) to „layout.spellcheckDefault“ (seb). Fixed mapping for enableJava and added mapping for enablePlugIns (which enables/disables only the Flash plugin in SEB Windows as there is no global key to enable all plugins). --- browser/apps/chrome/defaults/seb/config.json | 8 +- .../chrome/defaults/seb/preferences/prefs.js | 2 +- browser/apps/modules/winctrl.jsm | 73 +++++++++++++++---- 3 files changed, 68 insertions(+), 15 deletions(-) diff --git a/browser/apps/chrome/defaults/seb/config.json b/browser/apps/chrome/defaults/seb/config.json index b834d8f..dab25b1 100644 --- a/browser/apps/chrome/defaults/seb/config.json +++ b/browser/apps/chrome/defaults/seb/config.json @@ -14,7 +14,13 @@ "network.proxy.no_proxies_on" : "localhost,127.0.0.1", "browser.download.dir" : "", "browser.zoom.full" : true, - "security.enable_java" : false + "zoom.maxPercent" : 300, + "zoom.minPercent" : 30, + "plugin.state.flash" : 2, + "plugin.state.java" : 0, + "javascript.enabled" : true, + "dom.disable_open_during_load" : false, + "layout.spellcheckDefault" : 0 }, "seb.url" : "http://www.safeexambrowser.org", "seb.language" : "en-US", diff --git a/browser/apps/chrome/defaults/seb/preferences/prefs.js b/browser/apps/chrome/defaults/seb/preferences/prefs.js index 12a8bb4..a3c3fe9 100644 --- a/browser/apps/chrome/defaults/seb/preferences/prefs.js +++ b/browser/apps/chrome/defaults/seb/preferences/prefs.js @@ -25,7 +25,7 @@ user_pref("browser.download.manager.useWindow", false); user_pref("browser.helperApps.alwaysAsk.force", false); user_pref("browser.link.open_newwindow", 2); user_pref("browser.startup.homepage_override.mstone", "ignore"); -user_pref("browser.zoom.full", true); +user_pref("dom.ipc.plugins.flash.disable-protected-mode", true); user_pref("extensions.update.enabled", false); user_pref("javascript.options.showInConsole", true); user_pref("javascript.options.strict", true); diff --git a/browser/apps/modules/winctrl.jsm b/browser/apps/modules/winctrl.jsm index eba2234..d097da7 100644 --- a/browser/apps/modules/winctrl.jsm +++ b/browser/apps/modules/winctrl.jsm @@ -76,7 +76,15 @@ var winctrl = (function() { "seb.reload.warning" : "showReloadWarning", "browser.download.dir" : "downloadDirectoryWin", "browser.zoom.full" : browserZoomFull, - "security.enable_java" : "enableJava" + "zoom.maxPercent" : zoomMaxPercent, + "zoom.minPercent" : zoomMinPercent, + //"browser.link.open_newwindow" : browserLinkOpenNewWindow, + //"browser.link.open_newwindow.restriction" : browserLinkOpenNewWindowRestriction, + "plugin.state.flash" : pluginEnableFlash, + "plugin.state.java" : pluginEnableJava, + "javascript.enabled" : "enableJavaScript", + "dom.disable_open_during_load" : "blockPopUpWindows", + "layout.spellcheckDefault" : spellcheckDefault }, pos = { 0 : "left", @@ -162,20 +170,59 @@ var winctrl = (function() { return ret; } - function urlFilterRegex() { - var ret = (config["urlFilterRegex"] == 1) ? true : false; - return ret; - } + function zoomMaxPercent() { + var ret = (config["enableZoomPage"] == false && config["enableZoomText"] == false) ? 100 : 300; + return ret; + } + + function zoomMinPercent() { + var ret = (config["enableZoomPage"] == false && config["enableZoomText"] == false) ? 100 : 30; + return ret; + } + + function spellcheckDefault() { + var ret = (config["allowSpellCheck"] == true) ? 2 : 0; + return ret; + } + + function pluginEnableFlash() { + var ret = (config["enablePlugIns"] == true) ? 2 : 0; + return ret; + } - function urlFilterTrustedContent() { - var ret = (config["urlFilterTrustedContent"] == 0) ? true : false; - return ret; - } + function pluginEnableJava() { + var ret = (config["enableJava"] == true) ? 2 : 0; + return ret; + } + + function browserLinkOpenNewWindow() { + if (config["newBrowserWindowByLinkPolicy"] == 1) { + return 1; + } + return 2; + } + + function browserLinkOpenNewWindowRestriction() { + if (config["newBrowserWindowByScriptPolicy"] == 1) { + return 0; + } + return 2; + } - function browserScreenKeyboard() { - var ret = (config["browserScreenKeyboard"] == 1) ? true : false; - return ret; - } + function urlFilterRegex() { + var ret = (config["urlFilterRegex"] == 1) ? true : false; + return ret; + } + + function urlFilterTrustedContent() { + var ret = (config["urlFilterTrustedContent"] == 0) ? true : false; + return ret; + } + + function browserScreenKeyboard() { + var ret = (config["browserScreenKeyboard"] == 1) ? true : false; + return ret; + } function browserExamKey() { // add some logic From 8b8b48f7c5f020685ccbc3f5eb5f4b80b809361b Mon Sep 17 00:00:00 2001 From: Daniel Schneider Date: Fri, 27 Feb 2015 16:45:08 +0100 Subject: [PATCH 05/17] Changed value type for 2 keys MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Changed value type from integer to bool for keys touchOptimized and browserScreenKeyboard. Changed reload modifiers to „“ (as it is used in SEB 2.1, as the reload warning prevents accidentally hitting F5). Using F5 seems better for usability. --- .../chrome/defaults/seb/config.debug.json | 18 ++++++++--------- .../apps/chrome/defaults/seb/config.demo.json | 20 +++++++++---------- .../chrome/defaults/seb/config.demo.left.json | 18 ++++++++--------- .../chrome/defaults/seb/config.demo.nat.json | 16 +++++++-------- .../defaults/seb/config.demo.right.json | 18 ++++++++--------- browser/apps/chrome/defaults/seb/config.json | 4 ++-- .../chrome/defaults/seb/config.local.json | 20 +++++++++---------- .../chrome/defaults/seb/config.winctrl.json | 18 ++++++++--------- browser/apps/chrome/defaults/seb/winctrl.json | 2 +- browser/apps/modules/winctrl.jsm | 11 +++------- 10 files changed, 70 insertions(+), 75 deletions(-) diff --git a/browser/apps/chrome/defaults/seb/config.debug.json b/browser/apps/chrome/defaults/seb/config.debug.json index ce6d87c..4962dc1 100644 --- a/browser/apps/chrome/defaults/seb/config.debug.json +++ b/browser/apps/chrome/defaults/seb/config.debug.json @@ -12,7 +12,7 @@ "network.proxy.socks" : "", "network.proxy.socks_port" : 0, "network.proxy.no_proxies_on" : "localhost,127.0.0.1" - }, + }, "seb.url" : "http://www.safeexambrowser.org", "seb.language" : "en-US", "seb.request.header" : "X-SafeExamBrowser-RequestHash", @@ -23,17 +23,17 @@ "seb.mainWindow.titlebar.enabled" : true, "seb.popupWindows.titlebar.enabled" : true, "seb.mainWindow.screen" : { - "fullsize" : true, + "fullsize" : true, "width" : "1950", "height" : "1200", - "position" : "center" + "position" : "center" }, "seb.popupWindows.screen" : { - "fullsize" : false, + "fullsize" : false, "width" : 800, "height" : 600, "position" : "center", - "offset" : 40 + "offset" : 40 }, "seb.trusted.content" : true, "seb.pattern.regex" : false, @@ -65,9 +65,9 @@ "seb.showall.keycode" : "VK_F1", "seb.popup.policy" : 2, "seb.distinct.popup" : true, - "seb.bypass.cache" : true, - "seb.removeProfile" : true, - "seb.alert.controller" : true, + "seb.bypass.cache" : true, + "seb.removeProfile" : true, + "seb.alert.controller" : true, "seb.screenshot.controller" : false, "sc.image.mimetype" : "image/jpeg", "sc.sound" : false, @@ -80,6 +80,6 @@ "socket" : "wss://localhost:8443/websocket" }, "seb.restart.url" : "", - "seb.touch.optimized" : 0, + "seb.touch.optimized" : false, "seb.embedded.certs" : "" } diff --git a/browser/apps/chrome/defaults/seb/config.demo.json b/browser/apps/chrome/defaults/seb/config.demo.json index 4aa04a9..444f8c9 100644 --- a/browser/apps/chrome/defaults/seb/config.demo.json +++ b/browser/apps/chrome/defaults/seb/config.demo.json @@ -12,7 +12,7 @@ "network.proxy.socks" : "", "network.proxy.socks_port" : 0, "network.proxy.no_proxies_on" : "localhost,127.0.0.1" - }, + }, "seb.url" : "http://www.safeexambrowser.org", "seb.language" : "en-US", "seb.request.header" : "X-SafeExamBrowser-RequestHash", @@ -23,17 +23,17 @@ "seb.mainWindow.titlebar.enabled" : false, "seb.popupWindows.titlebar.enabled" : true, "seb.mainWindow.screen" : { - "fullsize" : true, + "fullsize" : true, "width" : "100%", "height" : "100%", - "position" : "left" + "position" : "left" }, "seb.popupWindows.screen" : { - "fullsize" : false, + "fullsize" : false, "width" : 800, "height" : 600, "position" : "center", - "offset" : 40 + "offset" : 40 }, "seb.trusted.content" : true, "seb.pattern.regex" : false, @@ -50,7 +50,7 @@ "seb.load.modifiers" : "control shift", "seb.reload.keycode" : "VK_F5", "seb.reload.modifiers" : "control shift", - "seb.reload.warning" : true, + "seb.reload.warning" : true, "seb.restart.mode" : 2, "seb.restart.keycode" : "VK_F9", "seb.restart.modifiers" : "control shift", @@ -65,10 +65,10 @@ "seb.showall.keycode" : "VK_F1", "seb.popup.policy" : 2, "seb.distinct.popup" : true, - "seb.bypass.cache" : true, + "seb.bypass.cache" : true, "seb.removeProfile" : true, - "seb.alert.controller" : true, - "seb.screenshot.controller" : true, + "seb.alert.controller" : true, + "seb.screenshot.controller" : true, "sc.image.mimetype" : "image/jpeg", "sc.sound" : true, "seb.togglehidden.enabled" : true, @@ -80,7 +80,7 @@ "socket" : "wss://localhost:8443/websocket" }, "seb.restart.url" : "", - "seb.touch.optimized" : 0, + "seb.touch.optimized" : false, "seb.embedded.certs" : "" } } diff --git a/browser/apps/chrome/defaults/seb/config.demo.left.json b/browser/apps/chrome/defaults/seb/config.demo.left.json index 71b5745..9c20c17 100644 --- a/browser/apps/chrome/defaults/seb/config.demo.left.json +++ b/browser/apps/chrome/defaults/seb/config.demo.left.json @@ -12,7 +12,7 @@ "network.proxy.socks" : "", "network.proxy.socks_port" : 0, "network.proxy.no_proxies_on" : "localhost,127.0.0.1" - }, + }, "seb.url" : "https://localhost:8443/demo/index.html", "seb.language" : "en-US", "seb.request.header" : "X-SafeExamBrowser-RequestHash", @@ -23,17 +23,17 @@ "seb.mainWindow.titlebar.enabled" : true, "seb.popupWindows.titlebar.enabled" : true, "seb.mainWindow.screen" : { - "fullsize" : false, + "fullsize" : false, "width" : "50%", "height" : 0, - "position" : "left" + "position" : "left" }, "seb.popupWindows.screen" : { - "fullsize" : false, + "fullsize" : false, "width" : 800, "height" : 600, "position" : "center", - "offset" : 40 + "offset" : 40 }, "seb.trusted.content" : true, "seb.pattern.regex" : false, @@ -65,10 +65,10 @@ "seb.showall.keycode" : "VK_F1", "seb.popup.policy" : 2, "seb.distinct.popup" : true, - "seb.bypass.cache" : true, + "seb.bypass.cache" : true, "seb.removeProfile" : true, - "seb.alert.controller" : true, - "seb.screenshot.controller" : true, + "seb.alert.controller" : true, + "seb.screenshot.controller" : true, "sc.image.mimetype" : "image/jpeg", "sc.sound" : true, "seb.togglehidden.enabled" : true, @@ -80,7 +80,7 @@ "socket" : "wss://localhost:8443/websocket" }, "seb.restart.url" : "", - "seb.touch.optimized" : 0, + "seb.touch.optimized" : false, "seb.embedded.certs" : "" } } diff --git a/browser/apps/chrome/defaults/seb/config.demo.nat.json b/browser/apps/chrome/defaults/seb/config.demo.nat.json index f2326d8..09a4e4d 100644 --- a/browser/apps/chrome/defaults/seb/config.demo.nat.json +++ b/browser/apps/chrome/defaults/seb/config.demo.nat.json @@ -12,7 +12,7 @@ "network.proxy.socks" : "", "network.proxy.socks_port" : 0, "network.proxy.no_proxies_on" : "localhost,127.0.0.1" - }, + }, "seb.url" : "https://localhost:8444/demo/index.html", "seb.request.header" : "X-SafeExamBrowser-RequestHash", "seb.request.key" : "71aad4ab9dfd447cc479e6b4a7c9a544e2cafc7f3adeb68b2a21efad68eca4dc", @@ -36,7 +36,7 @@ "seb.load.modifiers" : "control shift", "seb.reload.keycode" : "VK_F5", "seb.reload.modifiers" : "", - "seb.reload.warning" : true, + "seb.reload.warning" : true, "seb.navigation.enabled" : true, "seb.back.keycode" : "VK_LEFT", "seb.back.modifiers" : "control", @@ -47,16 +47,16 @@ "seb.net.tries.enabled" : false, "seb.net.max.times" : 3, "seb.net.timeout" : 10000, - "seb.restart.mode" : 2, + "seb.restart.mode" : 2, "seb.popupWindows.titlebar.enabled" : false, "seb.openwin.width" : 800, "seb.openwin.height" : 600, - "seb.showall.keycode" : "VK_F1", + "seb.showall.keycode" : "VK_F1", "seb.distinct.popup" : true, - "seb.bypass.cache" : true, + "seb.bypass.cache" : true, "seb.removeProfile" : true, - "seb.screenshot.controller" : true, - "seb.alert.controller" : true, + "seb.screenshot.controller" : true, + "seb.alert.controller" : true, "sc.image.mimetype" : "image/jpeg", "sc.sound" : true, "seb.togglehidden.enabled" : true, @@ -68,7 +68,7 @@ "socket" : "wss://localhost:8444/websocket" }, "seb.restart.url" : "", - "seb.touch.optimized" : 0, + "seb.touch.optimized" : false, "seb.embedded.certs" : "" } } diff --git a/browser/apps/chrome/defaults/seb/config.demo.right.json b/browser/apps/chrome/defaults/seb/config.demo.right.json index 4e62c9a..0c76503 100644 --- a/browser/apps/chrome/defaults/seb/config.demo.right.json +++ b/browser/apps/chrome/defaults/seb/config.demo.right.json @@ -12,7 +12,7 @@ "network.proxy.socks" : "", "network.proxy.socks_port" : 0, "network.proxy.no_proxies_on" : "localhost,127.0.0.1" - }, + }, "seb.url" : "https://localhost:8443/demo/index.html", "seb.language" : "en-US", "seb.request.header" : "X-SafeExamBrowser-RequestHash", @@ -23,17 +23,17 @@ "seb.mainWindow.titlebar.enabled" : true, "seb.popupWindows.titlebar.enabled" : true, "seb.mainWindow.screen" : { - "fullsize" : false, + "fullsize" : false, "width" : "50%", "height" : 0, - "position" : "right" + "position" : "right" }, "seb.popupWindows.screen" : { - "fullsize" : false, + "fullsize" : false, "width" : 800, "height" : 600, "position" : "center", - "offset" : 40 + "offset" : 40 }, "seb.trusted.content" : true, "seb.pattern.regex" : false, @@ -65,10 +65,10 @@ "seb.showall.keycode" : "VK_F1", "seb.popup.policy" : 2, "seb.distinct.popup" : true, - "seb.bypass.cache" : true, + "seb.bypass.cache" : true, "seb.removeProfile" : true, - "seb.alert.controller" : true, - "seb.screenshot.controller" : true, + "seb.alert.controller" : true, + "seb.screenshot.controller" : true, "sc.image.mimetype" : "image/jpeg", "sc.sound" : true, "seb.togglehidden.enabled" : true, @@ -80,7 +80,7 @@ "socket" : "wss://localhost:8443/websocket" }, "seb.restart.url" : "", - "seb.touch.optimized" : 0, + "seb.touch.optimized" : false, "seb.embedded.certs" : "" } } diff --git a/browser/apps/chrome/defaults/seb/config.json b/browser/apps/chrome/defaults/seb/config.json index dab25b1..9c77fb1 100644 --- a/browser/apps/chrome/defaults/seb/config.json +++ b/browser/apps/chrome/defaults/seb/config.json @@ -58,7 +58,7 @@ "seb.load.keycode" : "VK_F6", "seb.load.modifiers" : "control shift", "seb.reload.keycode" : "VK_F5", - "seb.reload.modifiers" : "control shift", + "seb.reload.modifiers" : "", "seb.reload.warning" : true, "seb.restart.mode" : 2, "seb.restart.keycode" : "VK_F9", @@ -90,6 +90,6 @@ "socket" : "wss://localhost:8443/websocket" }, "seb.restart.url" : "", - "seb.touch.optimized" : 0, + "seb.touch.optimized" : false, "seb.embedded.certs" : "" } diff --git a/browser/apps/chrome/defaults/seb/config.local.json b/browser/apps/chrome/defaults/seb/config.local.json index e8049ec..f0b12d2 100644 --- a/browser/apps/chrome/defaults/seb/config.local.json +++ b/browser/apps/chrome/defaults/seb/config.local.json @@ -12,7 +12,7 @@ "network.proxy.socks" : "", "network.proxy.socks_port" : 0, "network.proxy.no_proxies_on" : "localhost,127.0.0.1" - }, + }, "seb.url_" : "http://localhost/ilias/trunk/", "seb.url" : "https://moodle-app1-skal.let.ethz.ch/2/mod/quiz/view.php?id=2", "seb.request.header" : "X-SafeExamBrowser-RequestHash", @@ -21,17 +21,17 @@ "seb.mainWindow.titlebar.enabled" : false, "seb.popupWindows.titlebar.enabled" : true, "seb.mainWindow.screen" : { - "fullsize" : true, + "fullsize" : true, "width" : "50%", "height" : "100%", - "position" : "left" + "position" : "left" }, "seb.popupWindows.screen" : { - "fullsize" : false, + "fullsize" : false, "width" : 800, "height" : 600, "position" : "center", - "offset" : 40 + "offset" : 40 }, "seb.trusted.content" : true, "seb.pattern.regex" : false, @@ -64,12 +64,12 @@ "seb.net.tries.enabled" : false, "seb.net.max.times" : 3, "seb.net.timeout" : 10000, - "seb.showall.keycode" : "VK_F1", + "seb.showall.keycode" : "VK_F1", "seb.distinct.popup" : true, - "seb.bypass.cache" : true, + "seb.bypass.cache" : true, "seb.removeProfile" : true, - "seb.screenshot.controller" : false, - "seb.alert.controller" : true, + "seb.screenshot.controller" : false, + "seb.alert.controller" : true, "sc.image.mimetype" : "image/jpeg", "sc.sound" : false, "seb.togglehidden.enabled" : false, @@ -81,7 +81,7 @@ "socket" : "wss://localhost:8443/websocket" }, "seb.restart.url" : "", - "seb.touch.optimized" : 0, + "seb.touch.optimized" : false, "seb.embedded.certs" : "" } } diff --git a/browser/apps/chrome/defaults/seb/config.winctrl.json b/browser/apps/chrome/defaults/seb/config.winctrl.json index 6f5bd19..ca5b1dc 100644 --- a/browser/apps/chrome/defaults/seb/config.winctrl.json +++ b/browser/apps/chrome/defaults/seb/config.winctrl.json @@ -12,8 +12,8 @@ "network.proxy.socks" : "", "network.proxy.socks_port" : 0, "network.proxy.no_proxies_on" : "localhost,127.0.0.1" - - }, + + }, "seb.url" : "http://www.safeexambrowser.org", "seb.language" : "en-US", "seb.request.header" : "X-SafeExamBrowser-RequestHash", @@ -24,17 +24,17 @@ "seb.mainWindow.titlebar.enabled" : false, "seb.popupWindows.titlebar.enabled" : true, "seb.mainWindow.screen" : { - "fullsize" : true, + "fullsize" : true, "width" : 800, "height" : 600, - "position" : "center" + "position" : "center" }, "seb.popupWindows.screen" : { - "fullsize" : false, + "fullsize" : false, "width" : 800, "height" : 600, "position" : "center", - "offset" : 40 + "offset" : 40 }, "seb.trusted.content" : true, "seb.pattern.regex" : false, @@ -66,8 +66,8 @@ "seb.showall.keycode" : "VK_F1", "seb.popup.policy" : 2, "seb.distinct.popup" : true, - "seb.bypass.cache" : true, - "seb.removeProfile" : true, + "seb.bypass.cache" : true, + "seb.removeProfile" : true, "seb.alert.controller" : true, "seb.screenkeyboard.controller" : true, "seb.screenshot.controller" : false, @@ -82,6 +82,6 @@ "socket" : "wss://localhost:8443/websocket" }, "seb.restart.url" : "", - "seb.touch.optimized" : 0, + "seb.touch.optimized" : false, "seb.embedded.certs" : "" } diff --git a/browser/apps/chrome/defaults/seb/winctrl.json b/browser/apps/chrome/defaults/seb/winctrl.json index 774286f..d653b45 100644 --- a/browser/apps/chrome/defaults/seb/winctrl.json +++ b/browser/apps/chrome/defaults/seb/winctrl.json @@ -1,7 +1,7 @@ { "startURL":"https://localhost:8443/demo/index.html", "restartExamURL":"https://localhost:8443/demo/q1.html", -"touchOptimized":0, +"touchOptimized":false, "browserExamKey":"SEBKEY", "browserURLSalt":true, "browserViewMode":1, diff --git a/browser/apps/modules/winctrl.jsm b/browser/apps/modules/winctrl.jsm index d097da7..75bddb3 100644 --- a/browser/apps/modules/winctrl.jsm +++ b/browser/apps/modules/winctrl.jsm @@ -54,7 +54,7 @@ var winctrl = (function() { "seb.messaging.url" : "browserMessagingUrl", "seb.messaging.socket" : "browserMessagingSocket", "seb.messaging.ping.time" : "browserMessagingPingTime", - "seb.screenkeyboard.controller" : browserScreenKeyboard, + "seb.screenkeyboard.controller" : "browserScreenKeyboard", "seb.pattern.regex" : urlFilterRegex, "seb.trusted.content" : urlFilterTrustedContent, "seb.whitelist.pattern" : "whitelistURLFilter", @@ -140,7 +140,7 @@ var winctrl = (function() { ret['width'] = config["mainBrowserWindowWidth"]; ret['height'] = config["mainBrowserWindowHeight"]; ret['position'] = pos[config["mainBrowserWindowPositioning"]]; - if (config["touchOptimized"] == 1) { + if (config["touchOptimized"]) { ret['width'] = "100%"; ret['height'] = "100%"; } @@ -153,7 +153,7 @@ var winctrl = (function() { ret['width'] = config["newBrowserWindowByLinkWidth"]; ret['height'] = config["newBrowserWindowByLinkHeight"]; ret['position'] = pos[config["newBrowserWindowByLinkPositioning"]]; - if (config["touchOptimized"] == 1) { + if (config["touchOptimized"]) { ret['width'] = "100%"; ret['height'] = "100%"; } @@ -219,11 +219,6 @@ var winctrl = (function() { return ret; } - function browserScreenKeyboard() { - var ret = (config["browserScreenKeyboard"] == 1) ? true : false; - return ret; - } - function browserExamKey() { // add some logic return config["browserExamKey"]; From cd9009e3de257a460c17c92fd0101fb8a738879d Mon Sep 17 00:00:00 2001 From: Daniel Schneider Date: Fri, 8 May 2015 12:09:30 +0200 Subject: [PATCH 06/17] Changed mapping for certificate data to SEB key certificateDataWin. Added mapping for new SEB key browserUserAgent to seb key general.useragent.override. --- browser/apps/modules/winctrl.jsm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/browser/apps/modules/winctrl.jsm b/browser/apps/modules/winctrl.jsm index 75bddb3..b0ba137 100644 --- a/browser/apps/modules/winctrl.jsm +++ b/browser/apps/modules/winctrl.jsm @@ -84,7 +84,8 @@ var winctrl = (function() { "plugin.state.java" : pluginEnableJava, "javascript.enabled" : "enableJavaScript", "dom.disable_open_during_load" : "blockPopUpWindows", - "layout.spellcheckDefault" : spellcheckDefault + "layout.spellcheckDefault" : spellcheckDefault, + "general.useragent.override" : "browserUserAgent" }, pos = { 0 : "left", @@ -368,7 +369,7 @@ var winctrl = (function() { var certdb = x.getCertDB(); //var certcache = x.getCertCache(); //var certlist = x.getCertList(); - var x509 = certdb.constructX509FromBase64(cert.certificateData); + var x509 = certdb.constructX509FromBase64(cert.certificateDataWin); //certlist.addCert(x509); // maybe needed for type 1 Identity Certs //certcache.cacheCertList(certlist); var host = cert.name; From 0585540270d52089445727f56fc1221a21a968ec Mon Sep 17 00:00:00 2001 From: Daniel Schneider Date: Fri, 8 May 2015 12:11:16 +0200 Subject: [PATCH 07/17] =?UTF-8?q?Changed=20default=20value=20for=20"genera?= =?UTF-8?q?l.useragent.override=E2=80=9C.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- browser/apps/chrome/defaults/seb/config.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/browser/apps/chrome/defaults/seb/config.json b/browser/apps/chrome/defaults/seb/config.json index 9c77fb1..3eb0bc5 100644 --- a/browser/apps/chrome/defaults/seb/config.json +++ b/browser/apps/chrome/defaults/seb/config.json @@ -1,6 +1,6 @@ { "prefs" : { - "general.useragent.override" : "SEBKEY", + "general.useragent.override" : "Mozilla/5.0 (Windows NT 6.3; rv:37.0) Gecko/20100101 Firefox/37.0 SEB 2.1", "network.proxy.type" : 0, "network.proxy.autoconfig_url" : "", "network.proxy.http" : "", From e3b2a96f3a961788a5eb7945b1ae06e7981bb3d4 Mon Sep 17 00:00:00 2001 From: Daniel Schneider Date: Fri, 8 May 2015 12:18:23 +0200 Subject: [PATCH 08/17] Modified UI strings to fit to SEB Win --- browser/apps/chrome/locale/seb/de-DE/seb.properties | 4 ++-- browser/apps/chrome/locale/seb/en-US/seb.properties | 9 --------- browser/apps/chrome/locale/seb/fr-FR/seb.properties | 8 ++++---- 3 files changed, 6 insertions(+), 15 deletions(-) delete mode 100644 browser/apps/chrome/locale/seb/en-US/seb.properties diff --git a/browser/apps/chrome/locale/seb/de-DE/seb.properties b/browser/apps/chrome/locale/seb/de-DE/seb.properties index ba10c1c..4d44c28 100644 --- a/browser/apps/chrome/locale/seb/de-DE/seb.properties +++ b/browser/apps/chrome/locale/seb/de-DE/seb.properties @@ -2,9 +2,9 @@ seb.title=Safe Exam Browser (DE) seb.url.blocked=Der Aufruf dieser Adresse ist nicht erlaubt. seb.shutdown.warning.title=Safe Exam Browser beenden seb.shutdown.warning=SEB wirklich beenden? -seb.password.title=Beenden-Passwort +seb.password.title=Safe Exam Browser beenden seb.password.text=Bitte geben Sie das Beenden-Passwort ein: -seb.password.wrong=Falsches Passwort +seb.password.wrong=SEB kann nur nach Eingabe des korrekten Passworts beendet werden. Fragen Sie Ihren Prüfungs-Supporter nach dem Passwort. FÜHREN SIE KEINEN NEUSTART/RESET DURCH! Dies könnte unerwünschte Effekte auf Ihre Systemeinstellungen haben (siehe www.safeexambrowser.org/faq) seb.reload.warning.title=Seite neu laden seb.reload.warning=Wollen Sie die Webseite wirklich neu laden? diff --git a/browser/apps/chrome/locale/seb/en-US/seb.properties b/browser/apps/chrome/locale/seb/en-US/seb.properties deleted file mode 100644 index beaf318..0000000 --- a/browser/apps/chrome/locale/seb/en-US/seb.properties +++ /dev/null @@ -1,9 +0,0 @@ -seb.title=Safe Exam Browser (US) -seb.url.blocked=The requested address is not allowed. -seb.shutdown.warning.title=Quit Safe Exam Browser -seb.shutdown.warning=Are you sure you want to quit SEB? -seb.password.title=Shutdown password -seb.password.text=Please enter the shutdown password: -seb.password.wrong=Wrong password -seb.reload.warning.title=Reload Current Page -seb.reload.warning=Do you really want to reload the current web page? diff --git a/browser/apps/chrome/locale/seb/fr-FR/seb.properties b/browser/apps/chrome/locale/seb/fr-FR/seb.properties index b5a538c..8a9e032 100644 --- a/browser/apps/chrome/locale/seb/fr-FR/seb.properties +++ b/browser/apps/chrome/locale/seb/fr-FR/seb.properties @@ -1,9 +1,9 @@ -seb.title=Safe Exam Browser (FR) +seb.title=Safe Exam Browser (US) seb.url.blocked=The requested address is not allowed. seb.shutdown.warning.title=Quit Safe Exam Browser seb.shutdown.warning=Are you sure you want to quit SEB? -seb.password.title=Shutdown password -seb.password.text=Please enter the shutdown password: -seb.password.wrong=Wrong password +seb.password.title=Quit Safe Exam Browser +seb.password.text=Please enter the quit password: +seb.password.wrong=You can only quit SEB by entering the correct quit password. Ask your exam supporter for the correct password. DO NOT RESET YOUR MACHINE! This may have undesired effects on your system's settings (see www.safeexambrowser.org/faq). seb.reload.warning.title=Reload Current Page seb.reload.warning=Do you really want to reload the current web page? From e08bdd1ccc07171772013b469a86f57ad407fc42 Mon Sep 17 00:00:00 2001 From: Daniel Schneider Date: Fri, 8 May 2015 12:19:20 +0200 Subject: [PATCH 09/17] again --- browser/apps/chrome/locale/seb/en-US/seb.properties | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 browser/apps/chrome/locale/seb/en-US/seb.properties diff --git a/browser/apps/chrome/locale/seb/en-US/seb.properties b/browser/apps/chrome/locale/seb/en-US/seb.properties new file mode 100644 index 0000000..8a9e032 --- /dev/null +++ b/browser/apps/chrome/locale/seb/en-US/seb.properties @@ -0,0 +1,9 @@ +seb.title=Safe Exam Browser (US) +seb.url.blocked=The requested address is not allowed. +seb.shutdown.warning.title=Quit Safe Exam Browser +seb.shutdown.warning=Are you sure you want to quit SEB? +seb.password.title=Quit Safe Exam Browser +seb.password.text=Please enter the quit password: +seb.password.wrong=You can only quit SEB by entering the correct quit password. Ask your exam supporter for the correct password. DO NOT RESET YOUR MACHINE! This may have undesired effects on your system's settings (see www.safeexambrowser.org/faq). +seb.reload.warning.title=Reload Current Page +seb.reload.warning=Do you really want to reload the current web page? From 714a44ede7e0b4320ee416d06a35c5f276a2faed Mon Sep 17 00:00:00 2001 From: drs Date: Sun, 5 Jul 2015 22:55:45 +0200 Subject: [PATCH 10/17] Deleted diff file --- .../modules/winctrl.jsm_diff_2015-06-15.jsm | 449 ------------------ 1 file changed, 449 deletions(-) delete mode 100644 browser/apps/modules/winctrl.jsm_diff_2015-06-15.jsm diff --git a/browser/apps/modules/winctrl.jsm_diff_2015-06-15.jsm b/browser/apps/modules/winctrl.jsm_diff_2015-06-15.jsm deleted file mode 100644 index 22554a7..0000000 --- a/browser/apps/modules/winctrl.jsm_diff_2015-06-15.jsm +++ /dev/null @@ -1,449 +0,0 @@ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is the browser component of seb. - * - * The Initial Developer of the Original Code is Stefan Schneider . - * Portions created by the Initial Developer are Copyright (C) 2005 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * Stefan Schneider - * - * ***** END LICENSE BLOCK ***** */ - -/* ***** GLOBAL winctrl SINGLETON ***** - -* *************************************/ - -/* for javascript module import - see: https://developer.mozilla.org/en/Components.utils.import -*/ -var EXPORTED_SYMBOLS = ["winctrl"]; -Components.utils.import("resource://modules/xullib.jsm"); - -var winctrl = (function() { - // XPCOM Services, Interfaces and Objects - const x = xullib; - var config = null, - mapping = { - "seb.url" : "startURL", - "seb.language" : "browserLanguage", - "seb.request.key" : browserExamKey, - "seb.request.salt" : "browserURLSalt", - "seb.mainWindow.titlebar.enabled" : titleBarEnabled, - "seb.popupWindows.titlebar.enabled" : popupTitleBarEnabled, - "seb.mainWindow.screen" : mainWindowScreen, - "seb.popupWindows.screen" : popupScreen, - "seb.taskbar.enabled" : "showTaskBar", - "seb.taskbar.height" : "taskBarHeight", - "seb.shutdown.enabled" : "allowQuit", - "seb.popup.policy" : "newBrowserWindowByLinkPolicy", - "seb.shutdown.url" : "quitURL", - "seb.shutdown.password" : "hashedQuitPassword", - "seb.navigation.enabled" : "allowBrowsingBackForward", - "seb.messaging.url" : "browserMessagingUrl", - "seb.messaging.socket" : "browserMessagingSocket", - "seb.messaging.ping.time" : "browserMessagingPingTime", - "seb.screenkeyboard.controller" : "browserScreenKeyboard", - "seb.pattern.regex" : urlFilterRegex, - "seb.trusted.content" : urlFilterTrustedContent, - "seb.whitelist.pattern" : "whitelistURLFilter", - "seb.blacklist.pattern" : "blacklistURLFilter", - "network.proxy.type" : proxyType, - "network.proxy.autoconfig_url" : proxyAutoConfig, - "network.proxy.no_proxies_on" : proxyExceptionsList, - "network.proxy.http" : proxyHttp, - "network.proxy.http_port" : proxyHttpPort, - "network.proxy.ssl" : proxyHttps, - "network.proxy.ssl_port" : proxyHttpsPort, - "network.proxy.ftp" : proxyFtp, - "network.proxy.ftp_port" : proxyFtpPort, - "network.proxy.socks" : proxySocks, - "network.proxy.socks_port" : proxySocksPort, - "seb.removeProfile" : "removeBrowserProfile", - "seb.restart.url" : "restartExamURL", -<<<<<<< HEAD - "seb.embedded.certs" : embeddedCerts, - "seb.reload.warning" : "showReloadWarning", - "browser.download.dir" : "downloadDirectoryWin", - "browser.zoom.full" : browserZoomFull, - "zoom.maxPercent" : zoomMaxPercent, - "zoom.minPercent" : zoomMinPercent, - //"browser.link.open_newwindow" : browserLinkOpenNewWindow, - //"browser.link.open_newwindow.restriction" : browserLinkOpenNewWindowRestriction, - "plugin.state.flash" : pluginEnableFlash, - "plugin.state.java" : pluginEnableJava, - "javascript.enabled" : "enableJavaScript", - "dom.disable_open_during_load" : "blockPopUpWindows", - "layout.spellcheckDefault" : spellcheckDefault -======= - "seb.embedded.certs" : "embeddedCertificates" ->>>>>>> f23989c2dcb18ea98924bb479accc4d85b2fb1a0 - }, - pos = { - 0 : "left", - 1 : "center", - 2 : "right" - }; - - function toString () { - return "winctrl"; - } - - function init(conf,cb) { - x.debug("init winctrl"); - config = conf; - cb.call(null,true); - } - - function hasParamMapping(param) { - if (config === null) { - return null; - } - return mapping[param]; - } - - function getParam(param) { - if (config === null) { - return null; - } - switch (typeof mapping[param]) { - case "string" : - case "number": - case "boolean": - if (config[mapping[param]] != null && config[mapping[param]] != undefined) { - //x.debug("ctrl.getParam: " + param); - return config[mapping[param]]; - } - else { - return null; - } - break; - case "function" : - //x.debug("ctrl.getParam function: " + param); - return mapping[param].call(null,param); - break; - default : - return null; - } - } - - function mainWindowScreen() { -<<<<<<< HEAD - var ret = {}; - ret['fullsize'] = (config["browserViewMode"] == 0) ? false : true; - ret['width'] = config["mainBrowserWindowWidth"]; - ret['height'] = config["mainBrowserWindowHeight"]; - ret['position'] = pos[config["mainBrowserWindowPositioning"]]; - if (config["touchOptimized"]) { - ret['width'] = "100%"; - ret['height'] = "100%"; - } -======= - var ret = {}; - ret['fullsize'] = ((config["browserViewMode"] == 0) || (config["touchOptimized"] == 1)) ? true : false; - ret['width'] = config["mainBrowserWindowWidth"]; - ret['height'] = config["mainBrowserWindowHeight"]; - ret['position'] = pos[config["mainBrowserWindowPositioning"]]; ->>>>>>> f23989c2dcb18ea98924bb479accc4d85b2fb1a0 - return ret; - } - - function popupScreen() { - var ret = {}; - ret['fullsize'] = false; - ret['width'] = config["newBrowserWindowByLinkWidth"]; - ret['height'] = config["newBrowserWindowByLinkHeight"]; - ret['position'] = pos[config["newBrowserWindowByLinkPositioning"]]; -<<<<<<< HEAD - if (config["touchOptimized"]) { - ret['width'] = "100%"; - ret['height'] = "100%"; - } - return ret; - } - - function titleBarEnabled() { - var ret = (config["browserViewMode"] == 0) ? true : false; - return ret; - } - - function browserZoomFull() { - var ret = (config["zoomMode"] == 0) ? true : false; - return ret; - } - - function zoomMaxPercent() { - var ret = (config["enableZoomPage"] == false && config["enableZoomText"] == false) ? 100 : 300; - return ret; - } - - function zoomMinPercent() { - var ret = (config["enableZoomPage"] == false && config["enableZoomText"] == false) ? 100 : 30; - return ret; - } - - function spellcheckDefault() { - var ret = (config["allowSpellCheck"] == true) ? 2 : 0; - return ret; - } - - function pluginEnableFlash() { - var ret = (config["enablePlugIns"] == true) ? 2 : 0; - return ret; - } - - function pluginEnableJava() { - var ret = (config["enableJava"] == true) ? 2 : 0; - return ret; - } - - function browserLinkOpenNewWindow() { - if (config["newBrowserWindowByLinkPolicy"] == 1) { - return 1; - } - return 2; - } - - function browserLinkOpenNewWindowRestriction() { - if (config["newBrowserWindowByScriptPolicy"] == 1) { - return 0; - } - return 2; - } - - function urlFilterRegex() { - var ret = (config["urlFilterRegex"] == 1) ? true : false; - return ret; - } - - function urlFilterTrustedContent() { - var ret = (config["urlFilterTrustedContent"] == 0) ? true : false; - return ret; - } - -======= - if (config["touchOptimized"] == 1) { - ret['fullsize'] = true; - } - return ret; - } - - function titleBarEnabled() { - var ret = ((config["browserViewMode"] == 0) || (config["touchOptimized"] == 1)) ? false : true; - return ret; - } - - function popupTitleBarEnabled() { - var ret = (config["touchOptimized"] == 1) ? false : true; - return ret; - } - - function urlFilterRegex() { - var ret = (config["urlFilterRegex"] == 1) ? true : false; - return ret; - } - - function urlFilterTrustedContent() { - var ret = (config["urlFilterTrustedContent"] == 0) ? true : false; - return ret; - } - - function browserScreenKeyboard() { - var ret = (config["browserScreenKeyboard"] == 1) ? true : false; - return ret; - } - ->>>>>>> f23989c2dcb18ea98924bb479accc4d85b2fb1a0 - function browserExamKey() { - // add some logic - return config["browserExamKey"]; - } - - function proxyType() { - // see http://kb.mozillazine.org/Firefox_:_FAQs_:_About:config_Entries - // if no proxy object, don't map anything - if (!config["proxies"]) { - return null; - } - // autodetect proxy - if (config["proxies"]["AutoDiscoveryEnabled"]) { - return 4; - } - // auto config url - if (config["proxies"]["AutoConfigurationEnabled"]) { - return 2; - } - // http(s) proxy - if (config["proxies"]["HTTPEnable"] || config["proxies"]["HTTPSEnable"]) { - return 1; - } - return null; - } - - function proxyAutoConfig() { - if (!config["proxies"]) { - return null; - } - if (!config["proxies"]["AutoConfigurationURL"]) { - return null; - } - return config["proxies"]["AutoConfigurationURL"]; - } - - function proxyHttp() { - if (!config["proxies"]) { - return null; - } - if (!config["proxies"]["HTTPProxy"]) { - return null; - } - return config["proxies"]["HTTPProxy"]; - } - - function proxyHttpPort() { - if (!config["proxies"]) { - return null; - } - if (!config["proxies"]["HTTPPort"]) { - return null; - } - return config["proxies"]["HTTPPort"]; - } - - function proxyHttps() { - if (!config["proxies"]) { - return null; - } - if (!config["proxies"]["HTTPSProxy"]) { - return null; - } - return config["proxies"]["HTTPSProxy"]; - } - - function proxyHttpsPort() { - if (!config["proxies"]) { - return null; - } - if (!config["proxies"]["HTTPSPort"]) { - return null; - } - return config["proxies"]["HTTPSPort"]; - } - - function proxyFtp() { - if (!config["proxies"]) { - return null; - } - if (!config["proxies"]["FTPProxy"]) { - return null; - } - return config["proxies"]["FTPProxy"]; - } - - function proxyFtpPort() { - if (!config["proxies"]) { - return null; - } - if (!config["proxies"]["FTPPort"]) { - return null; - } - return config["proxies"]["FTPPort"]; - } - - function proxySocks() { - if (!config["proxies"]) { - return null; - } - if (!config["proxies"]["SOCKSProxy"]) { - return null; - } - return config["proxies"]["SOCKSProxy"]; - } - - function proxySocksPort() { - if (!config["proxies"]) { - return null; - } - if (!config["proxies"]["SOCKSPort"]) { - return null; - } - return config["proxies"]["SOCKSPort"]; - } - - function proxyExceptionsList() { - if (!config["proxies"]) { - return null; - } - if (!config["proxies"]["ExceptionsList"]) { - return null; - } - var exceptList = config["proxies"]["ExceptionsList"]; - //x.debug("proxyExceptionsList: " + typeof(exceptList)); - if (typeof(exceptList) != "object") { - return null; - } - return config["proxies"]["ExceptionsList"].join(",") + ",localhost,127.0.0.1"; - } -<<<<<<< HEAD - - function embeddedCerts() { - if (!config["embeddedCertificates"]) { - return null; - } - var certlist = config["embeddedCertificates"]; - for (i=0;i>>>>>> f23989c2dcb18ea98924bb479accc4d85b2fb1a0 - function paramHandler(fn) { - return eval(fn).call(null); - } - - return { - toString : toString, - init : init, - hasParamMapping : hasParamMapping, - getParam : getParam - }; -}()); From 2990770263d099ac9ab704e07b3875e5a5bf5b6c Mon Sep 17 00:00:00 2001 From: drs Date: Mon, 6 Jul 2015 00:19:25 +0200 Subject: [PATCH 11/17] Fixed browserViewMode 0 (= browser window) and 1 (= full screen) were switched in winctrl.jsm. --- browser/apps/modules/winctrl.jsm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/browser/apps/modules/winctrl.jsm b/browser/apps/modules/winctrl.jsm index 3cb64f5..56da7e9 100644 --- a/browser/apps/modules/winctrl.jsm +++ b/browser/apps/modules/winctrl.jsm @@ -138,7 +138,7 @@ var winctrl = (function() { function mainWindowScreen() { var ret = {}; - ret['fullsize'] = ((config["browserViewMode"] == 0) || (config["touchOptimized"] == 1)) ? true : false; + ret['fullsize'] = ((config["browserViewMode"] == 1) || (config["touchOptimized"] == 1)) ? true : false; ret['width'] = config["mainBrowserWindowWidth"]; ret['height'] = config["mainBrowserWindowHeight"]; ret['position'] = pos[config["mainBrowserWindowPositioning"]]; @@ -159,7 +159,7 @@ var winctrl = (function() { } function titleBarEnabled() { - var ret = ((config["browserViewMode"] == 0) || (config["touchOptimized"] == 1)) ? false : true; + var ret = ((config["browserViewMode"] == 1) || (config["touchOptimized"] == 1)) ? false : true; return ret; } From faca102bba27387b626d4bcb80c92f2fc4e77d50 Mon Sep 17 00:00:00 2001 From: drs Date: Mon, 6 Jul 2015 00:29:44 +0200 Subject: [PATCH 12/17] Removed code line where taskbar height was set to 45 due to a code bug. --- browser/apps/modules/seb.jsm | 1 - 1 file changed, 1 deletion(-) diff --git a/browser/apps/modules/seb.jsm b/browser/apps/modules/seb.jsm index 16c2dbf..c0905e9 100644 --- a/browser/apps/modules/seb.jsm +++ b/browser/apps/modules/seb.jsm @@ -1050,7 +1050,6 @@ var seb = (function() { if (tb) { let tbh = x.getParam("seb.taskbar.height"); - tbh = (tbh && (tbh > 0)) ? tbh : 45; sh -= tbh; } From 335d459d4fe541d06677bdb882bde49a9db015d0 Mon Sep 17 00:00:00 2001 From: Daniel Schneider Date: Mon, 22 Feb 2016 11:50:24 +0100 Subject: [PATCH 13/17] Upstream merge for quit link bugfix. --- browser/apps/modules/seb.jsm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/browser/apps/modules/seb.jsm b/browser/apps/modules/seb.jsm index d9c49d9..c3140f0 100644 --- a/browser/apps/modules/seb.jsm +++ b/browser/apps/modules/seb.jsm @@ -201,7 +201,7 @@ var seb = (function() { if (aRequest && aRequest.name) { let win = x.getChromeWin(aWebProgress.DOMWindow); //win.setCursor("-moz-spinning"); - if (shutdownUrl === aRequest.name) { + if ((shutdownUrl === aRequest.name) || (shutdownUrl+"/" === aRequest.name)) { aRequest.cancel(aStatus); var tmpShutdown = shutdownEnabled; // store default shutdownEnabled var tmpPassword = shutdownIgnorePassword; // store default shutdownIgnorePassword From 24c0f09ccd8b04abb36a0277ce368fbac824235b Mon Sep 17 00:00:00 2001 From: Daniel Schneider Date: Mon, 22 Feb 2016 12:05:42 +0100 Subject: [PATCH 14/17] Enabled native fullscreen and hardware acceleration. --- browser/apps/chrome/defaults/seb/preferences/prefs.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/browser/apps/chrome/defaults/seb/preferences/prefs.js b/browser/apps/chrome/defaults/seb/preferences/prefs.js index 5431496..cf3611b 100644 --- a/browser/apps/chrome/defaults/seb/preferences/prefs.js +++ b/browser/apps/chrome/defaults/seb/preferences/prefs.js @@ -40,3 +40,6 @@ user_pref("security.default_personal_cert", "Select Automatically"); user_pref("toolkit.defaultChromeURI", "chrome://seb/content/seb.xul"); user_pref("toolkit.defaultChromeFeatures", "chrome,dialog=no,resizable=yes,scrollbars=yes"); user_pref("toolkit.singletonWindowType", "main"); +user_pref("full-screen-api.enabled", true"); +user_pref("gfx.direct2d.disabled", false); +user_pref("layers.acceleration.disabled", false); From f7329ca067e11ff0f8027da2bc1b9fda6ab06212 Mon Sep 17 00:00:00 2001 From: Daniel Schneider Date: Wed, 25 May 2016 08:36:20 +0200 Subject: [PATCH 15/17] Fixed wrong " in full-screen-api.enabled parameter. --- browser/apps/chrome/defaults/seb/preferences/prefs.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/browser/apps/chrome/defaults/seb/preferences/prefs.js b/browser/apps/chrome/defaults/seb/preferences/prefs.js index cf3611b..652edef 100644 --- a/browser/apps/chrome/defaults/seb/preferences/prefs.js +++ b/browser/apps/chrome/defaults/seb/preferences/prefs.js @@ -40,6 +40,6 @@ user_pref("security.default_personal_cert", "Select Automatically"); user_pref("toolkit.defaultChromeURI", "chrome://seb/content/seb.xul"); user_pref("toolkit.defaultChromeFeatures", "chrome,dialog=no,resizable=yes,scrollbars=yes"); user_pref("toolkit.singletonWindowType", "main"); -user_pref("full-screen-api.enabled", true"); +user_pref("full-screen-api.enabled", true); user_pref("gfx.direct2d.disabled", false); user_pref("layers.acceleration.disabled", false); From 530be181fac0988e4a963e67cd78147cf7593ddb Mon Sep 17 00:00:00 2001 From: drs Date: Wed, 21 Dec 2016 15:09:41 +0800 Subject: [PATCH 16/17] Added setting browser.display.use_document_fonts = 1 --- browser/apps/chrome/defaults/seb/preferences/prefs.js | 1 + 1 file changed, 1 insertion(+) diff --git a/browser/apps/chrome/defaults/seb/preferences/prefs.js b/browser/apps/chrome/defaults/seb/preferences/prefs.js index 652edef..58830eb 100644 --- a/browser/apps/chrome/defaults/seb/preferences/prefs.js +++ b/browser/apps/chrome/defaults/seb/preferences/prefs.js @@ -43,3 +43,4 @@ user_pref("toolkit.singletonWindowType", "main"); user_pref("full-screen-api.enabled", true); user_pref("gfx.direct2d.disabled", false); user_pref("layers.acceleration.disabled", false); +user_pref("browser.display.use_document_fonts", 1); From 8e9ab11b148eb192ee0e4c90b1a677d10bd2de0d Mon Sep 17 00:00:00 2001 From: "Daniel R. Schneider" Date: Mon, 24 Jul 2017 17:47:41 +0200 Subject: [PATCH 17/17] =?UTF-8?q?Added=20new=20SEB=20settings=20allowVideo?= =?UTF-8?q?Capture=20(mapped=20to=20media.navigator.video.enabled)=20and?= =?UTF-8?q?=20allowAudioCapture=20(mapped=20to=20media.getusermedia.audioc?= =?UTF-8?q?apture.enabled),=20and=20set=20media.navigator.permission.disab?= =?UTF-8?q?led=20to=20true=20(prerequisite=20for=20video=20and=20audio=20c?= =?UTF-8?q?apture=20to=20work=20in=20SEB,=20as=20the=20Firefox=20=E2=80=9C?= =?UTF-8?q?allow=E2=80=9D=20alert=20is=20not=20being=20displayed=20in=20SE?= =?UTF-8?q?B).?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- browser/apps/chrome/defaults/seb/config.json | 2 ++ browser/apps/chrome/defaults/seb/preferences/prefs.js | 2 ++ browser/apps/modules/winctrl.jsm | 2 ++ 3 files changed, 6 insertions(+) diff --git a/browser/apps/chrome/defaults/seb/config.json b/browser/apps/chrome/defaults/seb/config.json index 3eb0bc5..30fb87a 100644 --- a/browser/apps/chrome/defaults/seb/config.json +++ b/browser/apps/chrome/defaults/seb/config.json @@ -20,6 +20,8 @@ "plugin.state.java" : 0, "javascript.enabled" : true, "dom.disable_open_during_load" : false, + "media.navigator.video.enabled" : false, + "media.getusermedia.audiocapture.enabled" : false, "layout.spellcheckDefault" : 0 }, "seb.url" : "http://www.safeexambrowser.org", diff --git a/browser/apps/chrome/defaults/seb/preferences/prefs.js b/browser/apps/chrome/defaults/seb/preferences/prefs.js index 58830eb..8040903 100644 --- a/browser/apps/chrome/defaults/seb/preferences/prefs.js +++ b/browser/apps/chrome/defaults/seb/preferences/prefs.js @@ -44,3 +44,5 @@ user_pref("full-screen-api.enabled", true); user_pref("gfx.direct2d.disabled", false); user_pref("layers.acceleration.disabled", false); user_pref("browser.display.use_document_fonts", 1); +user_pref("dom.serviceWorkers.enabled", true); +user_pref("media.navigator.permission.disabled", true); diff --git a/browser/apps/modules/winctrl.jsm b/browser/apps/modules/winctrl.jsm index 37bc30e..d4ac65e 100644 --- a/browser/apps/modules/winctrl.jsm +++ b/browser/apps/modules/winctrl.jsm @@ -85,6 +85,8 @@ var winctrl = (function() { "plugin.state.java" : pluginEnableJava, "javascript.enabled" : "enableJavaScript", "dom.disable_open_during_load" : "blockPopUpWindows", + "media.navigator.video.enabled" : "allowVideoCapture", + "media.getusermedia.audiocapture.enabled" : "allowAudioCapture", "layout.spellcheckDefault" : spellcheckDefault, "general.useragent.override" : "browserUserAgent" },