-
Notifications
You must be signed in to change notification settings - Fork 48
Description
Is your feature request related to a problem? Please describe.
Our company is testing SEB as solution for some of our exams, we use webRTC screen sharing but saw that you have a "native" screen proctoring solution which we would love to facilitate.
Problem: Currently, screen proctoring can only be started via SEB server.
We are open to implement this feature but wanted to ask if this is something you actually want to have in SEB.
Describe the solution you'd like
Extend SEB's JavaScript bridge commands to SEB for screen proctoring control. This could be achieved by expanding the existing message handler architecture (which already uses window.webkit.messageHandlers) with dedicated handlers for proctoring commands.
Rough idea/plan for implementation:
SafeExamBrowser.proctoring.start();
SafeExamBrowser.proctoring.stop();These methods would then invoke the corresponding native-side logic for starting/stopping screen proctoring, provided that the feature is allowed by policy or config.
// register handler
userContentController.add(self, name: "proctoringControl")
// handle message
public func userContentController(_ userContentController: WKUserContentController,
didReceive message: WKScriptMessage) {
if message.name == "updateKeys" {
// existing code
} else if message.name == "proctoringControl" {
handleProctoringControl(message. body as? String)
}
}
func handleProctoringControl(_ action: String?) {
guard let action = action else { return }
if action == "start" {
// Call screen proctoring start
navigationDelegate?.startScreenProctoring()
} else if action == "stop" {
// Call screen proctoring stop
navigationDelegate?.stopScreenProctoring()
}
}Describe alternatives you've considered
- Monitoring URL changes in the SEB client to detect custom navigation for exam start/stop, and then triggering proctoring accordingly (messy and error-prone).
Additional context
- The message handler system is already in use for other features (e.g., updating keys).
- This change would enable LMS/exam platforms to control when proctoring starts or ends, improving both privacy and exam integrity (e.g., not recording login pages, showing clear UI at exam start/end).
- This pattern is common in kiosk and hybrid-web UI scenarios and can be enabled only for trusted origins or by config flag.