Skip to content

3.11.0

Latest

Choose a tag to compare

@mickael-menu mickael-menu released this 17 Jul 08:27
d82f44f

Warning

Minor releases (a.B.c) of the Readium toolkit may now include minor breaking changes, such as dependency upgrades or small API modifications. Major version numbers are reserved for significant architectural changes.

Documentation

Changelog

Added

Navigator

  • Added the AudioSessionManaging protocol, letting apps provide their own audio session manager instead of the built-in AudioSession (contributed by @svenmeyers89).

LCP

  • LCPService has a new addPassphrase(_:isHashed:userID:provider:) method to store a passphrase candidate in the repository without opening a license first. Useful to preload a passphrase ahead of time (e.g. from a catalog).
  • LCPClient has a new getSupportedLCPProfileURIs() requirement, letting the toolkit report LCPError.licenseProfileNotSupported based on the profiles the embedded liblcp actually supports. Update your LCPClient facade to forward R2LCPClient.getSupportedLCPProfileURIs() (a default implementation is provided for backward compatibility).

Changed

LCP

  • The auto-generated LCP device ID is now stored in the Keychain instead of UserDefaults, so it survives an app delete/reinstall and no longer needlessly consumes a license's device-registration slots. Existing IDs are automatically migrated from UserDefaults.

Fixed

Shared

  • EPUB HREFs that are not percent-encoded but carry a fragment or query (e.g. chapter one.xhtml#section, with a space in the filename) now keep their #fragment/?query instead of encoding the separators into the path. This fixes table of contents and Media Overlays links failing to resolve and navigate in poorly-authored EPUBs.

Navigator

  • Fixed custom EditingActions sometimes missing from the text-selection menu for double-tap (single word) selections (contributed by @raphi011).
  • Fixed memory leak in the AudioNavigator.
  • #802 Fixed fonts declared with fontFamilyDeclarations never loading in the EPUB navigator. Font fetches were CORS-gated by WebKit (contributed by @atani).

What's Changed

New Contributors

Full Changelog: 3.10.0...3.11.0