Skip to content
This repository was archived by the owner on May 7, 2025. It is now read-only.
This repository was archived by the owner on May 7, 2025. It is now read-only.

Invalid location/CFI received #453

@EdwinGuzman

Description

@EdwinGuzman

This issue is a Bug

Related issue

*Example: See also #388 *

Observed behavior

We tested this on the debugger using Readium's Readium_cloud-reader-lite.zip
(hosted here: https://readium.org/technical/technical-notes/_posts/testing-with-cloudreader/)

Under certain circumstances, a location/CFI reported by the SDK becomes invalid (or no longer exists in the new DOM structure). The easiest way to demonstrate is to:

  1. Ask the SDK to give us its current location.
  2. Make some change that affects the page structure or DOM.
  3. Navigate away to some random spot (best if a different chapter).
  4. Attempt to re-apply the CFI from step 1.

Outcome:

  1. The open request fails, either sending the user to the beginning of the chapter (the idref from the attempted page open), or it just silently fails and you stay on the page you're already on.

In our test, we ask for the current location calling bookmarkCurrentPage(), make the font change, navigate away, and then try to navigate back to that spot using openSpineElementCfi().

Steps to reproduce

The "changes" we've tested so far that we know will cause the bug:

  1. Changing the text size
  2. Applying the CFI across different browsers (Android to iOS or vice versa)

Test file(s)

We tested on a handful of DRM-free Epub's, which we can provide but don't expect to make a difference.

Product

  • Readium cloud reader app
  • When using the readium-shared-js library on Android and iOS platforms.

Metadata

Metadata

Assignees

No one assigned

    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