Skip to content

Feature Request: Allow SEB JavaScript Bridge to Receive Commands for Proctoring Control #573

@HannesOberreiter

Description

@HannesOberreiter

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.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions