You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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:
Ask the SDK to give us its current location.
Make some change that affects the page structure or DOM.
Navigate away to some random spot (best if a different chapter).
Attempt to re-apply the CFI from step 1.
Outcome:
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:
Changing the text size
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.
The text was updated successfully, but these errors were encountered:
By design, CFI references do break if the DOM / document markup changes. There is no way around that, other than blacklisting / skipping injected elements that are added at runtime for specific presentation / rendering purposes (i.e. not part of the original authored publication, and not meant to be persistent). For example, Readium blacklists the markup generated for MathJax, annotations, etc.
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:
Outcome:
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 usingopenSpineElementCfi()
.Steps to reproduce
The "changes" we've tested so far that we know will cause the bug:
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-shared-js
library on Android and iOS platforms.The text was updated successfully, but these errors were encountered: