SEBSERV-414 almost finished (no lock screen color)

This commit is contained in:
anhefti 2024-01-24 12:18:43 +01:00
parent 7ffef0938f
commit 5f6c32ac54
5 changed files with 280 additions and 25 deletions

View file

@ -20,19 +20,19 @@ import ch.ethz.seb.sebserver.gbl.model.session.ClientConnection.ConnectionStatus
public interface ClientMonitoringDataView {
public static final String ATTR_STATUS = "st";
public static final String ATTR_CONNECTION_TOKEN = "tk";
public static final String ATTR_EXAM_USER_SESSION_ID = "si";
public static final String ATTR_INFO = "in";
public static final String ATTR_INDICATOR_VALUES = "iv";
public static final String ATTR_CLIENT_GROUPS = "cg";
public static final String ATTR_NOTIFICATION_FLAG = "nf";
String ATTR_STATUS = "st";
String ATTR_CONNECTION_TOKEN = "tk";
String ATTR_EXAM_USER_SESSION_ID = "si";
String ATTR_INFO = "in";
String ATTR_INDICATOR_VALUES = "iv";
String ATTR_CLIENT_GROUPS = "cg";
String ATTR_NOTIFICATION_FLAG = "nf";
public static final int FLAG_MISSING_PING = 1;
public static final int FLAG_PENDING_NOTIFICATION = 2;
public static final int FLAG_GRANT_NOT_CHECKED = 4;
public static final int FLAG_GRANT_DENIED = 8;
public static final int FLAG_INVALID_SEB_VERSION = 16;
int FLAG_MISSING_PING = 1;
int FLAG_PENDING_NOTIFICATION = 2;
int FLAG_GRANT_NOT_CHECKED = 4;
int FLAG_GRANT_DENIED = 8;
int FLAG_INVALID_SEB_VERSION = 16;
@JsonProperty(Domain.CLIENT_CONNECTION.ATTR_ID)
Long getId();

View file

@ -0,0 +1,64 @@
package ch.ethz.seb.sebserver.gui.service.examconfig.impl.rules;
import ch.ethz.seb.sebserver.gbl.model.sebconfig.ConfigurationAttribute;
import ch.ethz.seb.sebserver.gbl.model.sebconfig.ConfigurationValue;
import ch.ethz.seb.sebserver.gbl.profile.GuiProfile;
import ch.ethz.seb.sebserver.gui.service.examconfig.ValueChangeRule;
import ch.ethz.seb.sebserver.gui.service.examconfig.impl.ViewContext;
import org.apache.commons.lang3.BooleanUtils;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service;
@Lazy
@Service
@GuiProfile
public class AllowScreenCapture implements ValueChangeRule {
private static final Logger log = LoggerFactory.getLogger(AllowScreenCapture.class);
private static final String KEY_ALLOW_SCREEN_CAPTURE = "allowScreenCapture";
private static final String KEY_ALLOW_WINDOW_CAPTURE = "allowWindowCapture";
private static final String KEY_BLOCK_SS = "blockScreenShotsLegacy";
@Override
public boolean observesAttribute(final ConfigurationAttribute attribute) {
return KEY_ALLOW_SCREEN_CAPTURE.equals(attribute.name) || KEY_ALLOW_WINDOW_CAPTURE.equals(attribute.name);
}
@Override
public void applyRule(
final ViewContext context,
final ConfigurationAttribute attribute,
final ConfigurationValue value) {
if (context.isReadonly() || StringUtils.isBlank(value.value)) {
return;
}
try {
if (KEY_ALLOW_SCREEN_CAPTURE.equals(attribute.name)) {
if (BooleanUtils.toBoolean(value.value)) {
context.enable(KEY_ALLOW_WINDOW_CAPTURE);
} else {
context.setValue(KEY_ALLOW_WINDOW_CAPTURE, "false");
context.setValue(KEY_BLOCK_SS, "false");
context.disable(KEY_ALLOW_WINDOW_CAPTURE);
context.disable(KEY_BLOCK_SS);
}
} else if (KEY_ALLOW_WINDOW_CAPTURE.equals(attribute.name)) {
if (BooleanUtils.toBoolean(value.value)) {
context.enable(KEY_BLOCK_SS);
} else {
context.setValue(KEY_BLOCK_SS, "false");
context.disable(KEY_BLOCK_SS);
}
}
} catch (final Exception e) {
log.warn("Failed to apply rule: ", e);
}
}
}

View file

@ -0,0 +1,58 @@
package ch.ethz.seb.sebserver.gui.service.examconfig.impl.rules;
import ch.ethz.seb.sebserver.gbl.model.sebconfig.ConfigurationAttribute;
import ch.ethz.seb.sebserver.gbl.model.sebconfig.ConfigurationValue;
import ch.ethz.seb.sebserver.gbl.profile.GuiProfile;
import ch.ethz.seb.sebserver.gui.service.examconfig.ValueChangeRule;
import ch.ethz.seb.sebserver.gui.service.examconfig.impl.ViewContext;
import org.apache.commons.lang3.BooleanUtils;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service;
@Lazy
@Service
@GuiProfile
public class MediaCapture implements ValueChangeRule {
private static final Logger log = LoggerFactory.getLogger(MediaCapture.class);
private static final String KEY_MEDIA_AUTOPLAY = "browserMediaAutoplay";
private static final String KEY_MEDIA_AUTOPLAY_AUDIO = "browserMediaAutoplayAudio";
private static final String KEY_MEDIA_AUTOPLAY_VIDEO = "browserMediaAutoplayVideo";
@Override
public boolean observesAttribute(final ConfigurationAttribute attribute) {
return KEY_MEDIA_AUTOPLAY.equals(attribute.name);
}
@Override
public void applyRule(
final ViewContext context,
final ConfigurationAttribute attribute,
final ConfigurationValue value) {
if (context.isReadonly() || StringUtils.isBlank(value.value)) {
return;
}
try {
if (BooleanUtils.toBoolean(value.value)) {
context.enable(KEY_MEDIA_AUTOPLAY_AUDIO);
context.enable(KEY_MEDIA_AUTOPLAY_VIDEO);
} else {
context.setValue(KEY_MEDIA_AUTOPLAY_AUDIO, "false");
context.setValue(KEY_MEDIA_AUTOPLAY_VIDEO, "false");
context.disable(KEY_MEDIA_AUTOPLAY_AUDIO);
context.disable(KEY_MEDIA_AUTOPLAY_VIDEO);
}
} catch (final Exception e) {
log.warn("Failed to apply rule: ", e);
}
}
}

View file

@ -31,13 +31,13 @@ INSERT IGNORE INTO configuration_attribute VALUES
UPDATE configuration_attribute SET default_value='false' WHERE id=59;
UPDATE configuration_attribute SET name='allowCustomDownUploadLocation' WHERE id=972;
UPDATE orientation SET y_position=2 WHERE config_attribute_id=60;
UPDATE orientation SET y_position=3 WHERE config_attribute_id=61;
UPDATE orientation SET y_position=4 WHERE config_attribute_id=972;
UPDATE orientation SET y_position=11 WHERE config_attribute_id=63;
UPDATE orientation SET y_position=6 WHERE config_attribute_id=64;
UPDATE orientation SET y_position=7 WHERE config_attribute_id=65;
UPDATE orientation SET y_position=13 WHERE config_attribute_id=66;
UPDATE orientation SET y_position=2 WHERE config_attribute_id=60 AND template_id=0;
UPDATE orientation SET y_position=3 WHERE config_attribute_id=61 AND template_id=0;
UPDATE orientation SET y_position=4 WHERE config_attribute_id=972 AND template_id=0;
UPDATE orientation SET y_position=11 WHERE config_attribute_id=63 AND template_id=0;
UPDATE orientation SET y_position=6 WHERE config_attribute_id=64 AND template_id=0;
UPDATE orientation SET y_position=7 WHERE config_attribute_id=65 AND template_id=0;
UPDATE orientation SET y_position=13 WHERE config_attribute_id=66 AND template_id=0;
INSERT IGNORE INTO orientation (config_attribute_id, template_id, view_id, group_id, x_position, y_position, width, height, title) VALUES
(1580, 0, 4, null, 0, 9, 8, 1, 'NONE'),
@ -56,8 +56,122 @@ INSERT IGNORE INTO configuration_attribute VALUES
;
-- ----------------------------------------------------------------
-- Add new SEB Settings GUI (SEBSERV-405)
-- Add new SEB Settings GUI (SEBSERV-414)
-- ----------------------------------------------------------------
INSERT IGNORE INTO orientation (config_attribute_id, template_id, view_id, group_id, x_position, y_position, width, height, title) VALUES
(1200, 0, 6, null, 0, 6, 1, 1, 'LEFT');
-- ----------------------------------------------------------------
-- Remove Setting ignoreExitKeys from GUI (SEBSERV-414)
-- ----------------------------------------------------------------
DELETE FROM orientation WHERE config_attribute_id=3 AND template_id=0;
-- ----------------------------------------------------------------
-- Remove all dictionary settings from GUI (SEBSERV-414)
-- ----------------------------------------------------------------
DELETE FROM orientation WHERE config_attribute_id=30 AND template_id=0;
-- ----------------------------------------------------------------
-- Change default value of newBrowserWindowShowURL (SEBSERV-414)
-- ----------------------------------------------------------------
UPDATE configuration_attribute SET default_value='0' WHERE id=928;
-- ----------------------------------------------------------------
-- Add allowPrint and enableFindPrinter (SEBSERV-414)
-- ----------------------------------------------------------------
INSERT IGNORE INTO configuration_attribute VALUES
(1590, 'allowPrint', 'CHECKBOX', null, null, null, null, 'false'),
(1591, 'enableFindPrinter', 'CHECKBOX', null, null, null, null, 'false')
;
UPDATE orientation SET x_position=5, width=2 WHERE config_attribute_id=960 AND template_id=0;
INSERT IGNORE INTO orientation (config_attribute_id, template_id, view_id, group_id, x_position, y_position, width, height, title) VALUES
(1590, 0, 3, 'browserSecurity', 0, 5, 4, 1, 'NONE'),
(1591, 0, 10, 'registry', 0, 11, 4, 1, 'NONE')
;
-- ----------------------------------------------------------------
-- Add enableRightMouseMac (SEBSERV-414)
-- ----------------------------------------------------------------
UPDATE orientation SET y_position=14 WHERE config_attribute_id=43 AND template_id=0;
UPDATE orientation SET y_position=15 WHERE config_attribute_id=45 AND template_id=0;
UPDATE orientation SET y_position=16 WHERE config_attribute_id=47 AND template_id=0;
UPDATE orientation SET y_position=17 WHERE config_attribute_id=928 AND template_id=0;
UPDATE orientation SET y_position=10 WHERE config_attribute_id=42 AND template_id=0;
UPDATE orientation SET y_position=11 WHERE config_attribute_id=44 AND template_id=0;
UPDATE orientation SET y_position=12 WHERE config_attribute_id=46 AND template_id=0;
UPDATE orientation SET y_position=13 WHERE config_attribute_id=919 AND template_id=0;
INSERT IGNORE INTO orientation (config_attribute_id, template_id, view_id, group_id, x_position, y_position, width, height, title) VALUES
(1568, 0, 3, null, 0, 9, 7, 1, 'NONE')
;
-- ----------------------------------------------------------------
-- Add prohibitedProcesses.ignoreInAAC (SEBSERV-414)
-- ----------------------------------------------------------------
INSERT IGNORE INTO orientation (config_attribute_id, template_id, view_id, group_id, x_position, y_position, width, height, title) VALUES
(1577, 0, 6, null, 0, 8, 1, 1, 'LEFT')
;
-- ----------------------------------------------------------------
-- Add Exchange "enablePrivateClipboard" with "enablePrivateClipboardMacEnforce" (SEBSERV-414)
-- ----------------------------------------------------------------
UPDATE orientation SET config_attribute_id=947 WHERE config_attribute_id=304 AND template_id=0;
-- ----------------------------------------------------------------
-- Set minMacOSVersion (SEBSERV-414)
-- ----------------------------------------------------------------
UPDATE configuration_attribute SET default_value='8', resources='0,1,2,3,4,5,6,7,8,9,10,11,12' WHERE id=308;
-- ----------------------------------------------------------------
-- Move display and version settings down (SEBSERV-414)
-- ----------------------------------------------------------------
-- move logging down
UPDATE orientation SET y_position=16 WHERE config_attribute_id=305 AND template_id=0;
UPDATE orientation SET y_position=17 WHERE config_attribute_id=306 AND template_id=0;
UPDATE orientation SET y_position=18 WHERE config_attribute_id=307 AND template_id=0;
UPDATE orientation SET y_position=19 WHERE config_attribute_id=317 AND template_id=0;
UPDATE orientation SET y_position=20 WHERE config_attribute_id=319 AND template_id=0;
UPDATE orientation SET y_position=21 WHERE config_attribute_id=320 AND template_id=0;
-- move monitors left
UPDATE orientation SET x_position = 0, y_position=13 WHERE config_attribute_id=315 AND template_id=0;
UPDATE orientation SET x_position = 0, y_position=14 WHERE config_attribute_id=1551 AND template_id=0;
UPDATE orientation SET x_position = 0, y_position=15 WHERE config_attribute_id=971 AND template_id=0;
-- apply SEB versions on the right
UPDATE orientation SET x_position = 7, y_position=18, height=9, width=5 WHERE config_attribute_id=1578 AND template_id=0;
-- move macOS settings to make space for new
UPDATE orientation SET y_position=4 WHERE config_attribute_id=309 AND template_id=0;
UPDATE orientation SET y_position=5 WHERE config_attribute_id=310 AND template_id=0;
UPDATE orientation SET y_position=6 WHERE config_attribute_id=311 AND template_id=0;
UPDATE orientation SET y_position=7 WHERE config_attribute_id=312 AND template_id=0;
UPDATE orientation SET y_position=9 WHERE config_attribute_id=313 AND template_id=0;
UPDATE orientation SET y_position=10 WHERE config_attribute_id=314 AND template_id=0;
UPDATE orientation SET y_position=11 WHERE config_attribute_id=316 AND template_id=0;
-- add new macOS settings
INSERT IGNORE INTO orientation (config_attribute_id, template_id, view_id, group_id, x_position, y_position, width, height, title) VALUES
(1567, 0, 9, 'macSettings', 7, 2, 5, 1, 'NONE'),
(1550, 0, 9, 'macSettings', 7, 3, 5, 1, 'NONE'),
(909, 0, 9, 'macSettings', 7, 8, 5, 1, 'NONE'),
(1552, 0, 9, 'macSettings', 7, 12, 5, 1, 'NONE'),
(948, 0, 9, 'macSettings', 7, 13, 5, 1, 'NONE'),
(1557, 0, 9, 'macSettings', 7, 14, 5, 1, 'NONE'),
(943, 0, 9, 'macSettings', 7, 15, 5, 1, 'NONE'),
(945, 0, 9, 'macSettings', 7, 16, 5, 1, 'NONE')
;
-- ----------------------------------------------------------------
-- Add Media Playback/Capture (SEBSERV-414)
-- ----------------------------------------------------------------
INSERT IGNORE INTO orientation (config_attribute_id, template_id, view_id, group_id, x_position, y_position, width, height, title) VALUES
(1200, 0, 6, null, 0, 6, 1, 1, 'LEFT');
(1558, 0, 3, 'mediaPlaybackCapture', 7, 16, 2, 1, 'NONE'),
(1559, 0, 3, 'mediaPlaybackCapture', 7, 17, 2, 1, 'NONE'),
(1560, 0, 3, 'mediaPlaybackCapture', 7, 18, 2, 1, 'NONE'),
(1561, 0, 3, 'mediaPlaybackCapture', 7, 19, 2, 1, 'NONE'),
(1562, 0, 3, 'mediaPlaybackCapture', 7, 20, 3, 1, 'NONE'),
(905, 0, 3, 'mediaPlaybackCapture', 9, 18, 3, 1, 'NONE'),
(1569, 0, 3, 'mediaPlaybackCapture', 9, 16, 3, 1, 'NONE'),
(1570, 0, 3, 'mediaPlaybackCapture', 9, 17, 3, 1, 'NONE'),
(1563, 0, 3, 'mediaPlaybackCapture', 9, 19, 3, 1, 'NONE')
;

View file

@ -1338,10 +1338,12 @@ sebserver.examconfig.props.label.showReloadWarning=Show reload warning in exam
sebserver.examconfig.props.label.showReloadWarning.tooltip=User has to confirm reloading a web page with F5 or reload button
sebserver.examconfig.props.label.newBrowserWindowShowReloadWarning=Show reload warning in additional windows
sebserver.examconfig.props.label.newBrowserWindowShowReloadWarning.tooltip=User has to confirm reloading a web page with F5 or reload button
sebserver.examconfig.props.label.removeBrowserProfile=Delete cache when re-configuring or terminating SEB (Win) This setting is ignored if<br/>"Clear browser session when ending" in section Exam > Session Handling is deactivated!
sebserver.examconfig.props.label.removeBrowserProfile=Delete cache when re-configuring or terminating SEB (Win)
sebserver.examconfig.props.label.removeBrowserProfile.tooltip=This setting is ignored if "Clear browser session when ending" in section Exam > Session Handling is deactivated!
sebserver.examconfig.props.label.removeLocalStorage=Disable local storage (Mac)
sebserver.examconfig.props.label.removeLocalStorage.tooltip=If your web application uses local storage, you have to be sure data is saved encrypted<br/> and removed when no longer needed as SEB doesn't remove local storage
sebserver.examconfig.props.label.allowPrint=Allow printing of web content (Win)
sebserver.examconfig.props.label.allowPrint.tooltip=This does not allow printing via internet PDF reader (see below)!
sebserver.examconfig.props.group.examWindow=Restrictions in Exam Window
sebserver.examconfig.props.label.browserWindowShowURL=Show URLs
@ -1581,6 +1583,7 @@ sebserver.examconfig.props.label.enableWindowsUpdate=Allow Windows Update to run
sebserver.examconfig.props.label.enableChromeNotifications=Allow notifications from Chrome browsers
sebserver.examconfig.props.group.kioskMode=Kiosk Mode
sebserver.examconfig.props.label.kioskMode=Kiosk Mode
sebserver.examconfig.props.label.kioskMode.tooltip=The kiosk mode setting reflects how the computer is locked down in SEB
sebserver.examconfig.props.label.kioskMode.0=Create new desktop
sebserver.examconfig.props.label.kioskMode.0.tooltip=This kiosk mode may prevent specific third party software to run correctly together with SEB, like some screen recording software or the Windows onscreen keyboard.
@ -1595,6 +1598,8 @@ sebserver.examconfig.props.label.allowScreenSharing=Allow remote session/screen
sebserver.examconfig.props.label.allowScreenSharing.tootlip=Allows Windows remote sessions and macOS screen sharing to be used
sebserver.examconfig.props.label.enablePrivateClipboard=Use private clipboard (Mac)
sebserver.examconfig.props.label.enablePrivateClipboard.tooltip=Private clipboard should always be used beside when working with third party application in managed/virtual machine
sebserver.examconfig.props.label.enablePrivateClipboardMacEnforce=Enforce private clipboard on Mac
sebserver.examconfig.props.label.enablePrivateClipboardMacEnforce.tooltip=Private clipboard should always be used beside when working with third party application in managed/virtual machine
sebserver.examconfig.props.group.logging=Logging
sebserver.examconfig.props.label.enableLogging=Enable logging
@ -1612,6 +1617,12 @@ sebserver.examconfig.props.label.minMacOSVersion.4=OS X 10.11 El Capitan
sebserver.examconfig.props.label.minMacOSVersion.5=OS X 10.12 Sierra
sebserver.examconfig.props.label.minMacOSVersion.6=OS X 10.13 Hight Sierra
sebserver.examconfig.props.label.minMacOSVersion.7=OS X 10.14 Mojave
sebserver.examconfig.props.label.minMacOSVersion.8=OS X 10.15 Catalina
sebserver.examconfig.props.label.minMacOSVersion.9=OS X 11 Big Sur
sebserver.examconfig.props.label.minMacOSVersion.10=OS X 12 Monterey
sebserver.examconfig.props.label.minMacOSVersion.11=OS X 13 Ventura
sebserver.examconfig.props.label.minMacOSVersion.12=OS X 14 Sonoma
sebserver.examconfig.props.label.enableAppSwitcherCheck=Disable app switcher when starting
sebserver.examconfig.props.label.enableAppSwitcherCheck.tooltip=SEB checks for the command key being held down while SEB is starting up. This prevents using the application switcher to mess with SEB\'s kiosk mode
sebserver.examconfig.props.label.forceAppFolderInstall=Force installation in Applications folder
@ -1622,6 +1633,7 @@ sebserver.examconfig.props.label.allowSiri=Allow to use Siri
sebserver.examconfig.props.label.allowSiri.tooltip=If enabled, Siri can be used by tapping the menu bar icon, Touch Bar icon or shortcut set in System Preferences/Siri (default: hold command space). The Siri window won't be displayed though
sebserver.examconfig.props.label.detectStoppedProcess=Detect when SEB process was stopped
sebserver.examconfig.props.label.detectStoppedProcess.tooltip=SEB displays a lock screen (requiring to enter the quit/unlock password) if it detects its process was stopped, which can indicate manipulation
sebserver.examconfig.props.label.detectStoppedProcess.tooltip=SEB displays a lock screen (requiring to enter the quit/unlock password) if it detects its process was stopped, which can indicate manipulation
sebserver.examconfig.props.label.allowDisplayMirroring=Allow display mirroring (affects also AirPlay Display)
sebserver.examconfig.props.label.allowDisplayMirroring.tooltip=If not selected, SEB prevents to mirror the main display to another
sebserver.examconfig.props.label.allowedDisplaysMaxNumber=Maximum allowed number of connected displays
@ -1667,11 +1679,12 @@ sebserver.examconfig.props.label.insideSebEnableVmWareClientShade=Enable VMware
sebserver.examconfig.props.label.insideSebEnableVmWareClientShade.tooltip=Activates the "Shade" bar at the upper edge of a virtual desktop, if existent. If you're not using VMware, this setting doesn't have any effect.
sebserver.examconfig.props.label.insideSebEnableNetworkConnectionSelector=Enable network connection selector
sebserver.examconfig.props.label.insideSebEnableNetworkConnectionSelector.tooltip=Activates the button which allows to connect to WiFi networks, introduces in Windows 10
sebserver.examconfig.props.label.enableFindPrinter=Enable find printer in system print dialog
sebserver.examconfig.props.group.specialKeys=Special Keys
sebserver.examconfig.props.group.specialKeys.tooltip=Settings to enable or block (hook) keys, key combinations and mouse buttons
sebserver.examconfig.props.label.enableEsc=Enable Esc
sebserver.examconfig.props.label.enablePrintScreen=Allow screen capture
sebserver.examconfig.props.label.enablePrintScreen=Allow screen capture (Win/iOS)
sebserver.examconfig.props.label.enablePrintScreen.tooltip=Controls Print Screen and OS X screen capture, corresponds with Enable screen capture in Security settings
sebserver.examconfig.props.label.enableCtrlEsc=Enable Ctrl-Esc
sebserver.examconfig.props.label.enableAltEsc=Enable Alt-Esc
@ -1837,7 +1850,7 @@ sebserver.examconfig.props.label.zoomSendVideo.tooltip=Not yet implemented
sebserver.examconfig.props.label.showProctoringViewButton=Show Proctoring Button
sebserver.examconfig.props.label.showProctoringViewButton
sebserver.examconfig.props.label.showProctoringViewButton.tooltip=
sebserver.examconfig.props.validation.password.confirm=Please enter correct confirm password
sebserver.examconfig.props.validation.unexpected=Unexpected error happened. Value was not set correctly
@ -1859,12 +1872,14 @@ sebserver.examconfig.props.label.allowMacOSVersionNumberMinor=Minor version numb
sebserver.examconfig.props.label.allowMacOSVersionNumberPatch=Patch version number
sebserver.examconfig.props.label.allowScreenCapture=Allow screen capture/recording
sebserver.examconfig.props.label.allowScreenCapture.tooltip=Allows macOS screen capture (screen shots) and recording (cmd-shift-3/-4/-5)
sebserver.examconfig.props.group.mediaPlaybackCapture=Media Playback/Capture
sebserver.examconfig.props.label.browserMediaAutoplay=Media autoplay
sebserver.examconfig.props.label.browserMediaAutoplay.tooltip=Some video/audio content will start playing without user interaction.<br/>Some other content might not be playable without enabling this setting (but will not auto play)
sebserver.examconfig.props.label.browserMediaAutoplayAudio=Audio autoplay
sebserver.examconfig.props.label.browserMediaAutoplayAudio.tooltip=Using the modern WebView, audio autoplay can be controlled separately
sebserver.examconfig.props.label.browserMediaAutoplayVideo=Video autoplay
sebserver.examconfig.props.label.browserMediaAutoplayVideo.tootlip=Using the modern WebView, video autoplay can be controlled separately
sebserver.examconfig.props.label.mobileAllowPictureInPictureMediaPlayback=Allow picture in picture video (iOS)
sebserver.examconfig.props.label.browserMediaCaptureCamera=Allow camera capture
sebserver.examconfig.props.label.browserMediaCaptureCamera.tooltip=Allow web sites to access the camera, for WebRTC live streams or still pictures (only in modern WebView and on macOS 11.1/iOS 14.3 or newer)
sebserver.examconfig.props.label.browserMediaCaptureMicrophone=Allow microphone capture
@ -1882,8 +1897,12 @@ sebserver.examconfig.props.label.defaultPageZoomLevel=Default page zoom level
sebserver.examconfig.props.label.defaultPageZoomLevel.tooltip=Zoom level to use by default on every page
sebserver.examconfig.props.label.defaultTextZoomLevel=Default text zoom level
sebserver.examconfig.props.label.defaultTextZoomLevel.tooltip=Zoom level to use by default on every page. When using the modern WebView, text zoom only works on some (simple) webpages<br/>and is only enabled when the page zoom level is 1.0
sebserver.examconfig.props.label.allowDictation=Allow to use dictation
sebserver.examconfig.props.label.blockScreenShotsLegacy=Block screen shots (Legacy)
sebserver.examconfig.props.label.allowWindowCapture=Allow window capture (screen shots)
sebserver.examconfig.props.label.screenSharingMacEnforceBlocked=Enforce blocking screen sharing on Mac
sebserver.examconfig.props.label.enableMacOSAAC=Prefer Assessment Mode (AAC)
sebserver.examconfig.props.label.enableMacOSAAC.tooltip=Automatic Assessment Configuration (AAC) Assessment Mode is available from macOS Monterey 12.1 (and Catalina 10.15.4 and >= 10.15.6).<br/>It blocks various macOS features (which cannot be allowed optionally, like screen capture/sharing, Siri, Dictation)
sebserver.examconfig.props.label.enableMacOSAAC.tooltip=Automatic Assessment Configuration (AAC) Assessment Mode is available from macOS Monterey 12.1 (and Catalina 10.15.4 and >= 10.15.6).<br/>It blocks various macOS (which cannot be allowed optionally, like screen capture/sharing, Siri, Dictation)
sebserver.examconfig.props.label.enableRightMouseMac=Enable right mouse button
sebserver.examconfig.props.label.enableRightMouseMac.tooltip=Enable to access context menu for Web Inspector in SEB for macOS (use ONLY for debugging).<br/>Disable to prevent right mouse button actions/context menu for sharing content (with modern WebView) and in browser plugins/video players
sebserver.examconfig.props.label.mobileAllowInlineMediaPlayback=Allow inline playback on iPad