Repository navigation
v0.9.1
@missing-elements/h5p-offline-player 0.9.1, @missing-elements/h5p-runtime 0.2.2, @missing-elements/h5p-embed 0.6.1.
The test suite now runs in Firefox and WebKit as well as Chromium. The first three fixes below are what those runs found.
untrusted packages play in Firefox again
Since 0.7.0, a package played untrusted never loaded in Firefox. The element raised error with code runtime: "Could not load …" naming the first library script. That covers every host that sets untrusted, and the embed page when it plays a package from another site.
The cause: Firefox checks a script the Service Worker builds against the worker's own script URL, not the URL that was requested. The frame's policy for an untrusted package lists exact paths, and the worker's script wasn't among them. Now it is.
In Firefox, that means the exact paths no longer separate the worker's own answers from each other. What still holds:
- a package's own library folders are never served;
nosniffkeeps any other file type from running.
A slow video keeps loading in Firefox
Firefox stops a Service Worker thirty seconds after its last event, even while one of its responses is still streaming. A video request waiting on a slow extraction ended empty at thirty seconds. That happens with a deflated video on a slow host, or one that pauses. The worker now holds such a request open until its body ends, for up to four minutes.
A lost download is repeated in WebKit
In WebKit, a package downloaded from a host without Range could lose its stored copy. It took a player removed and the same package played again within milliseconds. The load then failed with bad-archive. The download is now read back when it ends, and done once more if it was lost.
finished is the content's result, as H5P counts it
Runtime 0.2.2. Until now, finished came on any completed statement, including one from a part of the content, and never on answered. So:
- a single question never finished;
- content holding a quiz as a part, such as a Column or an Interactive Book chapter, finished early, with the part's score.
finished now follows H5P's own rule, the one the H5P plugins record a result by: a completed or answered statement from the content itself, not from a part inside it.
It can come more than once in one load, for example when a question is checked again. The last one is the result. If your page treats the first finished as final, take the last one instead. @missing-elements/h5p-cmi5 needs no change: it records the first finished of a registration, which is now the content's own result.
The fix ships in the runtime, so it reaches older players as well. On a CDN, update both URLs: h5p-offline-player@0.9.1 and h5p-runtime@0.2.2.
@missing-elements/h5p-embed 0.6.1
No code changes. It requires player 0.9.1 and runtime 0.2.2, so a site written with it gets all four fixes. A player domain gets them only when you write it again and redeploy:
npx @missing-elements/h5p-embed@0.6.1 <folder> --forceFull Changelog: v0.9.0...v0.9.1