• last updated 6 hours ago
Constraints: committers
Constraints: files
Constraints: dates
improved spelling

Do not enforce that pictures are always different on desktop screens, as they may be still for longer than the average picture interval

Don't draw a border around the proctoring iframe, to reduce UI cluttering

Provide a flag border_p

When this flag is enabled, an additional border will be drawn around the iframe embedding the proctored object.

Useful to make the proctored session more visible by e.g. in-person supervisors during an exam.

  1. … 2 more files in changeset.
Provide a Bootstrap-agnostic way to make the iframe "as big as possible"

  1. … 1 more file in changeset.
Make btn CSS BS3 and BS5 aware

Many thanks to Monika Andergassen

  1. … 1 more file in changeset.
Prefer modal implementation from acs-templating to the various approaches used so far

  1. … 2 more files in changeset.
Be stricter with user output:

- enable again the check for monochrome pictures

- enable for the screen as well that one should not send the same identycal picture twice

Reduce impact of PiP preview on the user experience: start PiP only when the window loses focus and interrupt PiP whenever the user interacts with the page in the foreground again

Implement "ground-truth" check for proctoring to make sure that we are sending pictures

When more than 10 times the expected maximum proctoring interval has pasased without any picture being successfully sent to the server, the proctored session will be aborted.

  1. … 6 more files in changeset.
Port of downstream behavior:

to prevent modern browsers to shut down proctoring when put out of focus, make so that a foreground PiP of one of the streams is always displayed.

Reuse the canvas objects throughout the proctoring

Follow Chrome suggestion and apply the willReadFrequently option to the canvas context

See https://html.spec.whatwg.org/multipage/canvas.html#concept-canvas-will-read-frequently

Fully qualify global classes

Use a consistent idiom to check for undefined

AudioContext is now widely supported

Stop supporting old-sytle media capturing

Prefer an idiom that won't create a fresh object to reset array

Style changes:

- use ' instead of " consistently in the code

- use strict equality operators

Modernize javascript:

- use const and let instead of var to better specify the scope and lifetime of variables

Fix event we listen to

Shorten idioms

Modernize javascript

- prefer querySelector api

- use classList to manipulate the objects classes

Declare variable as constant

Style changes:

- use ' instead of " to delimit strings

- use strict equality operators

Modernize javascript idioms

Trap errors happening when taking the picture, potentially dependent on the specific hardware/sowftware setup of the user, and abort the session in this case

added support for optionally turning off proctoring recodings

This options is useful e.g. for e.g. mock exams to avoid privacy issues.

  1. … 10 more files in changeset.
improve spelling

  1. … 1 more file in changeset.
Do not handle 400 responses in any special way: cases found in practice were always the result of a client-side timeout