Web framework 4
4.2.1 (2025-04-07)
Bugfixes
Fixed an issue introduced in version
4.2.0
whereIPublicationStyleOptions.fontSizeScaleFactor
had no effect in some EPUBs.
4.2.0 (2025-03-26)
New features
Added a new method
setContentSelection()
toVisiblePage
that sets the current selection.Added new options,
typographyResetOptions.removePublicationDefinedFontSizes
andtypographyResetOptions.removePublicationDefinedLineHeights
toIPublicationStyleOptions
.
Bugfixes
Fixed an issue where paragraph text indendation was sometimes applied on fragmented paragraphs.
Fixed an issue where page content with negative margins could appear outside of the page if
IPublicationStyleOptions.removePublicationDefinedHorizontalPageMargins
was true.
Improvements
Fixed the event order when navigating in the SingleDocumentScrollRenderer to make it more consistent with how the other renderers work. The reading position will be updated and the
readingPositionUpdated
event will fire before thenavigationEnded
event fires.
4.1.0 (2025-02-28)
New features
Added a new option
publicationStyleOptions.removePublicationDefinedHorizontalPageMargins
. When enabled, it does a best effort try to remove page margins defined in the publication CSS.Added a new method,
IReaderPublicationNavigation.getNavigationItemById
, which returns aReaderPublicationNavigationItem
with the given id.Added new options
publicationStyleOptions.typographyResetOptions
, which contains two options to reset font-size and line-height defined by the publication
Bugfixes
Fixed an issue where
syncMediaEndReached
fired inconsistently.Fixed a bug where the
selectionChanged
engine event would not fire ifReaderView.setScriptedContentDocumentEventHandlersEnabled(false)
had been called.Fixed a bug where CSS background images did not load if the selector for the style rule contained
:before
of:after
pseudo selectors.Fixed a bug where the result of
ContentPositionTimeline.toSerializedData()
changed when passing the same ContentPositionTimeline options but in different order.
Improvements
Improved building TTS SyncMediaTimeline performance.
4.0.0 (2025-02-04) - Changes since 3.12.0
Notable new features
The major release brings many new important features and improvements to the Colibrio Reader Framework.
Here are some of the most notable features.
Document Sectioning for reflowable EPUB content-documents. When enabled, reflowable documents can be split into sections prior to reflowing. This can greatly increase performance for publications with long content documents. You can control where and how often these breaks occur using options of course. We recommend that you enable Document Sectioning as a default.
New mitigation options for horizontally overflowing
table
andmath
elements let you wrap these elements in scroll containers. Previously these would have been shrunken to fit the page width, affecting legibility and accessibility. Note that we have changed the default behaviour to scroll instead of shrink. Read more in the Breaking Changes section below.
New features
Added the new option
IEpubContentProcessingOptions.horizontalOverflowMitigationMinFontSize
. When a word is too wide to fit on the page, it can either be broken into multiple lines or scaled down. This option sets the minimum font size to scale down to. If scaling is not enough to fit the word, the styleoverflow-wrap: break-word;
will also be applied, allowing the word to be broken up over more than one line.Added the new option
IEpubContentProcessingOptions.horizontalOverflowMathMLStrategy
controlling if<math>
elements too wide to fit in the page should be scaled down to fit, or horizontally scrollable.Added the new option
IEpubContentProcessingOptions.horizontalOverflowTableStrategy
controlling if table elements too wide to fit in the page should be scaled down to fit, or horizontally scrollable.Added the new option
IEpubContentProcessingOptions.verticalOverflowMitigationStrategy
controlling if a reflowed page should be allowed to vertically scroll if all content does not fit.Added the new option
IEpubReflowOptions.removeBottomMarginsOnFragmentedElements
controlling if the bottom margin on fragmented elements should be removed or kept.Added the new method
IReaderViewAnnotationLayer.refreshAnnotations()
forcing all annotations to be redrawn.Added support for iframes added by scripts in content documents.
The framework modules can now be imported in NodeJS using the ES module
import
keyword. This feature makes the framework compatible with modern build tools.Added the
IEpubContentBlockOptions.attributeNamesThatCreateContentBlocks
option, allowing you to specify which element attribute names should trigger the creation of a ContentBlock for an element.Added a new option
ITextSearchQueryOptions.ignoreDiacritics
, allowing searches to match text with or without diacritics.Added
IPdfReaderPublicationOptions.textLayerOptions.customCss
, which allows injecting custom CSS into the text layer of PDF pages.Added the Engine Event
copy
, which fires when publication content is copied.Added two new options:
IEpubReaderPublicationOptions.allowAudioElementAutoplay
andIEpubReaderPublicationOptions.allowVideoElementAutoplay
.The following options in
IReaderViewAnnotationOptions
now supports space-separated class names:containerClassName
positionClassName
rangeClassName
Added the new option
IPublicationStyleOptions.wordSpacing
, allowing modification of word spacing in reflowable EPUB documents.Added the new option
IPublicationStyleOptions.letterSpacing
, allowing modification of letter spacing in reflowable EPUB documents.SpreadSwipeRenderer
now supports switching from two-page spreads to a single centered page when the EPUB author has configured the document withrendition:page-spread-center
orspread-none
.Added the new option
IReaderViewOptions.contentDisplayAreaOptions
, controlling how the available display area is utilized by publication content.Added the new method
fetchTimelinePositions
toIContentPositionTimeline
.You can now manage ReaderPublication's storage state, such as
localStorage
andsessionStorage
for scripted EPUB content documents. UseIReaderPublication.getReaderPublicationStorage().getStorageArea()
to get aIReaderPublicationStorageArea
that can be used for adding, updating and removing items from storages.
Bugfixes
Improvements and bugfixes when applying page-breaks inside tables.
Fixed an issue where the reflow engine would fail to properly measure elements that had a transform applied to them, causing inaccurate page-breaks.
Fixed an issue where page-breaks were not applied correctly for pre-formatted text, like code examples.
Fixed an issue where reflow engine did not calculate margin-collapse rules correctly.
Fixed Reflow Engine issues that in some cases caused page breaks to be applied at wrong positions.
Annotation’s rendered positions now updates correctly inside scrolling containers.
Fixed issues that could cause images to get incorrect aspect ratios.
Fixed an issue where parsing the table of contents in an audiobook might fail.
Extra properties in
WpManifest
root where wrongfully removed, they are now kept.Fixed an issue where the
IReaderPublicationOptions.preventDragAndDropActions
had an incorrect default value.Fixed a bug where reading position might not be accurate when navigating to an annotation spanning two pages.
Fixed a bug where
URLSearchParams
did not work when passingURLSearchParams
to the constructor.Resolved an issue where trailing
<br>
elements on a page could cause it to overflow vertically.Fixed an issue where locators pointing to content within fragmented
<table>
elements were sometimes incorrect.Updated the behavior of
ISyncMediaTtsTimelineContentTransformationOptions.normalizeQuotationMarks
when set to true, it now converts all Unicode single quotation mark characters to the U+0027 Apostrophe (') character, while all Unicode double quotation marks continue to be converted to the U+0022 Quotation mark (").Fixed an issue where VoiceOver could move focus into offscreen/hidden content on iOS 18.
Fixed a bug where the “keydown” engine event’s
modifiers.shift
was false, even if shift was pressed.Fixed an issue where
IEpubContentBlockOptions.attributeNamesThatCreateContentBlocks
did not affect empty elements.Fixed an issue where TTS playback could not be resumed after being paused due to interruption from a screen reader.
IContentLocation.fetchContentResolver()
now works correctly for ranges spanning multiple EPUB documents.Fixed an issue where
IVisiblePageData.boundingClientRect
sometimes was assignedundefined
Fixed an issue with the page shadow animation in the Stack Renderer in iOS 18.3.
Breaking changes
The new options
IEpubReflowOptions.removeBottomMarginsOnFragmentedElements
andIEpubReflowOptions.removeTopMarginsOnFragmentedElements
default to true. This may cause content to appear closer to the top and bottom edge of the page compared to previous Colibrio Reader Framework versions. Set these options to false to keep the old behavior.The new options
IEpubContentProcessingOptions.horizontalOverflowMathMLStrategy
andIEpubContentProcessingOptions.horizontalOverflowTableStrategy
default toEpubContentOverflowStrategy.SCROLL
in order to improve legibility and accessibility. This will introduce horizontal scrolling within the page when the table or math elements do not fit horizontally. Set this option toEpubContentOverflowStrategy.SCALE
to keep the old behavior.The new option
IEpubContentProcessingOptions.horizontalOverflowMitigationMinFontSize
defaults to 16 pixels in order to improve accessibility. This may cause long words be broken up over more than one line. Set this option to 0 to keep the old behavior.The new option
IEpubContentProcessingOptions.verticalOverflowMitigationStrategy
defaults toEpubContentOverflowStrategy.SCROLL
in order to improve accessibility. This will introduce vertical scrolling within a page if not all content fits. Set this option toEpubContentOverflowStrategy.SCALE
to keep the old behavior.The event
syncMediaPlayerSeeking
will now contain theISyncMediaTimelinePosition
that was active before the seek. You can still access the target position usingISyncMediaPlayer.getTimelinePosition()
. The event that fires when the seek is completed,syncMediaPlayerSeeked
, will still contain the target position.IWpEntityData.name
is now anIWpLocalizableString
instead of anILocalizableString
.IWpLinkedResourceData.description
is now anIWpLocalizableString
instead of anILocalizableString
.IWpLinkedResourceData.name
is now anIWpLocalizableString
instead of anILocalizableString
.Changed type of
ISyncMediaObjectRef.type
fromSyncMediaObjectRefType | string
toSyncMediaObjectRefType
.Changed type of
ISyncMediaTimelineData.mediaObjectRefTypes
from(SyncMediaObjectRefType | string)[]
toSyncMediaObjectRefType[]
.Changed type of
ISyncMediaTimeline.getMediaObjectRefTypes()
from(SyncMediaObjectRefType | string)[]
toSyncMediaObjectRefType[]
.In
IReaderViewOptions
,forcePageAspectRatio
anddefaultPageAspectRatio
have been removed. UseIReaderViewOptions.contentDisplayAreaOptions
instead.IContentLocation.fetchNavigationItemReferences()
now functions correctly for locator ranges spanning multiple EPUB documents.Fixed a memory leak issue.
Deprecations
The following methods and types have been deprecated in 4.0.0 but will still be fully functional until they are removed in the next major release.
Deprecated
IReaderPublicationNavigationItemData.locator
. Please use the navigation item directly with methods that accepts locators instead. For example:IReaderView.goTo(navigationItemData)
.Deprecated
IReaderPublicationNavigationItem.getLocator()
. Please use the navigation item directly with methods that accepts locators instead. For example:IReaderView.goTo(navigationItem)
.Deprecated
IUnresolvedContentLocation.getLocator()
.Deprecated
ISyncMediaPlayer.isPlaying()
. Please use!isPaused() && isReady()
instead.Deprecated
IReaderView.fetchRectsForVisibleContent()
. Please useVisiblePage.fetchRectsForVisibleContent()
.Deprecated
ISyncMediaPlayer.isPlaying
. Instead use!ISyncMediaPlayer.isPaused() && ISyncMediaPlayer.isReady()
.Deprecated
ReadingSystemEngine.setOptions
. Please set up all options when callingnew ReadingSystemEngine(options)
instead.The option
IRendererOption.ignoreAspectRatio
has been deprecated. It will continue to work until its removal in version5.0.0
of the framework. Please useIReaderViewOptions.contentDisplayAreaOptions
withtype
set toContentDisplayAreaType.FILL
instead.
Removed old deprecated methods and types
Removed deprecated property
IZipArchiveInformation.sha1Signature
. Please useIZipArchiveInformation.signature.sha1Hash
instead.Removed deprecated method
IPublication.getMediaType()
. Please useIPublication.getType()
instead.Removed deprecated method
URLUtils.normalizePathnamePercentEncoding()
. Please useURLUtils.normalizePathnameEncoding()
instead.Removed deprecated option
IReaderViewPanZoomGestureOptions.maxPanOffsetHorizontal
. Please useIReaderViewOptions.transformManagerOptions.maxPanOffsetHorizontal
instead.Removed deprecated option
IReaderViewPanZoomGestureOptions.maxPanOffsetVertical
. Please useIReaderViewOptions.transformManagerOptions.maxPanOffsetVertical
instead.Removed deprecated option
IReaderViewPanZoomGestureOptions.maxScaleFactor
. Please useIReaderViewOptions.transformManagerOptions.maxScaleFactor
instead.Removed deprecated method
ISyncMediaPlayer.getApproximateElapsedTimeMsForTimelinePosition()
. Please useISyncMediaTimeline.getApproximateOffsetMs()
instead.Removed deprecated method
IReaderViewTransformManager.zoomToEventPosition()
. Please useIReaderViewTransformManager
.zoomToClientPosition(event.clientX, event.clientY, scale, ...)
instead.
Cleaned up Public API
The following methods and types were only ever meant to be used internally between the different framework modules and have been removed from the public framework API.
MediaFragmentSelectorUtils
EngineEventTargetNodeUtils
PageFlowDirection
RenderableState
IVisiblePageData.pageIndexInReflowedDocument
IVisiblePage.getPageIndexInReflowedDocument()
IReaderViewContentRangeChangeCallbacks
IEngineEventBus
IReadingSystemEngine.getEventBus()
IEngineEventDispatcher
IReaderViewPropertyTypeMap
IReaderViewPropertyChangedListener
IRenderableDocumentPageStream
IReaderDocumentRenderingContext
IPageIteratorContentLocation
IRenderableDocumentPageIterator
IReaderDocument.createRenderableDocument()
,createRenderableDocumentPageIterator()
,fetchEstimatedHeight()
,fetchEstimatedNumberOfPages()
MediaSourceFactory
IMediaSourceFactoryCreateUrlResult
ISyncMediaObjectRendererRuntime
ISyncMediaObjectRenderer.createRuntime()
anddestroyRuntime()
IRenderer.createRuntime()
,destroyRuntime()
,getVisiblePagesArea()
Many internal engine event constructors and parameters.
Improvements
SpreadSwipeRenderer
andSinglePageSwipeRenderer
are now able to use all available display area when displaying publications containing fixed-layout documents with varying dimensions, such as mixed portrait and landscape documents.ContentPositionTimeline
methods are now many times faster.Updated PDF.js to version 4.8.73.
4.0.0 (2025-02-04) - Changes since 4.0.0-rc.5
New features
Added the new method
fetchTimelinePositions
toIContentPositionTimeline
.You can now manage ReaderPublication's storage state, such as
localStorage
andsessionStorage
for scripted EPUB content documents. UseIReaderPublication.getReaderPublicationStorage().getStorageArea()
to get aIReaderPublicationStorageArea
that can be used for adding, updating and removing items from storages.
Improvements
ContentPositionTimeline
methods are now many times faster.Updated PDF.js to version 4.8.73.
Bugfixes
Fixed an issue where
IVisiblePageData.boundingClientRect
sometimes was assignedundefined
4.0.0-rc.5 (2024-11-19)
Breaking changes
In
IReaderViewOptions
,forcePageAspectRatio
anddefaultPageAspectRatio
have been removed. UseIReaderViewOptions.contentDisplayAreaOptions
instead.
Deprecations
The option
IRendererOption.ignoreAspectRatio
has been deprecated. It will continue to work until its removal in version5.0.0
of the framework. Please useIReaderViewOptions.contentDisplayAreaOptions
withtype
set toContentDisplayAreaType.FILL
instead.
New features
Added the new option
IPublicationStyleOptions.wordSpacing
, allowing modification of word spacing in reflowable EPUB documents.Added the new option
IPublicationStyleOptions.letterSpacing
, allowing modification of letter spacing in reflowable EPUB documents.SpreadSwipeRenderer
now supports switching from two-page spreads to a single centered page when the EPUB author has configured the document withrendition:page-spread-center
orspread-none
.Added the new option
IReaderViewOptions.contentDisplayAreaOptions
, controlling how the available display area is utilized by publication content.
Bugfixes
IContentLocation.fetchNavigationItemReferences()
now functions correctly for locator ranges spanning multiple EPUB documents.Fixed a memory leak issue.
Fixed an issue where the SingleDocumentScrollRenderer wasn’t horizontally centered correctly in some cases.
Improvements
SpreadSwipeRenderer
andSinglePageSwipeRenderer
are now able to use all available display area when displaying publications containing fixed-layout documents with varying dimensions, such as mixed portrait and landscape documents.
4.0.0-rc.4 (2024-10-17)
New features
The following options in
IReaderViewAnnotationOptions
now supports space-separated class names:containerClassName
positionClassName
rangeClassName
Bugfixes
Fixed an issue where TTS playback could not be resumed after being paused due to interruption from a screen reader.
IContentLocation.fetchContentResolver()
now works correctly for ranges spanning multiple EPUB documents.
4.0.0-rc.3 (2024-10-11)
New Features
Added a new option
ITextSearchQueryOptions.ignoreDiacritics
, allowing searches to match text with or without diacritics.Added
IPdfReaderPublicationOptions.textLayerOptions.customCss
, which allows injecting custom CSS into the text layer of PDF pages.Added the Engine Event
copy
, which fires when publication content is copied.Added two new options:
IEpubReaderPublicationOptions.allowAudioElementAutoplay
andIEpubReaderPublicationOptions.allowVideoElementAutoplay
.
Bug Fixes
Fixed an issue where VoiceOver could move focus into offscreen/hidden content on iOS 18.
Fixed a bug where the “keydown” engine event’s
modifiers.shift
was false, even if shift was pressed.Fixed an issue where
IEpubContentBlockOptions.attributeNamesThatCreateContentBlocks
did not affect empty elements.
4.0.0-rc.2 (2024-08-28)
New Features
Added the
IEpubContentBlockOptions.attributeNamesThatCreateContentBlocks
option, allowing you to specify which element attribute names should trigger the creation of a ContentBlock for an element.
Bug Fixes
Resolved an issue where trailing
<br>
elements on a page could cause it to overflow vertically.Fixed an issue where locators pointing to content within fragmented
<table>
elements were sometimes incorrect.Updated the behavior of
ISyncMediaTtsTimelineContentTransformationOptions.normalizeQuotationMarks
when set to true, it now converts all Unicode single quotation mark characters to the U+0027 Apostrophe (') character, while all Unicode double quotation marks continue to be converted to the U+0022 Quotation mark (").
4.0.0-rc.1 (2024-06-19)
This release contains all features and fixes from version 3.11.0.
Notable new features
The major release brings many new important features and improvements to the Colibrio Reader Framework.
Here are some of the most notable features.
Document Sectioning for reflowable EPUB content-documents. When enabled, reflowable documents can be split into sections prior to reflowing. This can greatly increase performance for publications with long content documents. You can control where and how often these breaks occur using options of course. We recommend that you enable Document Sectioning as a default.
New mitigation options for horizontally overflowing
table
andmath
elements let you wrap these elements in scroll containers. Previously these would have been shrunken to fit the page width, affecting legibility and accessibility. Note that we have changed the default behaviour to scroll instead of shrink. Read more in the Breaking Changes section below.
New features
Added the new option
IEpubContentProcessingOptions.horizontalOverflowMitigationMinFontSize
. When a word is too wide to fit on the page, it can either be broken into multiple lines or scaled down. This option sets the minimum font size to scale down to. If scaling is not enough to fit the word, the styleoverflow-wrap: break-word;
will also be applied, allowing the word to be broken up over more than one line.Added the new option
IEpubContentProcessingOptions.horizontalOverflowMathMLStrategy
controlling if<math>
elements too wide to fit in the page should be scaled down to fit, or horizontally scrollable.Added the new option
IEpubContentProcessingOptions.horizontalOverflowTableStrategy
controlling if table elements too wide to fit in the page should be scaled down to fit, or horizontally scrollable.Added the new option
IEpubContentProcessingOptions.verticalOverflowMitigationStrategy
controlling if a reflowed page should be allowed to vertically scroll if all content does not fit.Added the new option
IEpubReflowOptions.removeBottomMarginsOnFragmentedElements
controlling if the bottom margin on fragmented elements should be removed or kept.Added the new method
IReaderViewAnnotationLayer.refreshAnnotations()
forcing all annotations to be redrawn.Added support for iframes added by scripts in content documents.
The framework modules can now be imported in NodeJS using the ES module
import
keyword. This feature makes the framework compatible with modern build tools.
Bugfixes
Improvements and bugfixes when applying page-breaks inside tables.
Fixed an issue where the reflow engine would fail to properly measure elements that had a transform applied to them, causing inaccurate page-breaks.
Fixed an issue where page-breaks were not applied correctly for pre-formatted text, like code examples.
Fixed an issue where reflow engine did not calculate margin-collapse rules correctly.
Fixed Reflow Engine issues that in some cases caused page breaks to be applied at wrong positions.
Annotation’s rendered positions now updates correctly inside scrolling containers.
Fixed issues that could cause images to get incorrect aspect ratios.
Fixed an issue where parsing the table of contents in an audiobook might fail.
Extra properties in
WpManifest
root where wrongfully removed, they are now kept.Fixed an issue where the
IReaderPublicationOptions.preventDragAndDropActions
had an incorrect default value.Fixed a bug where reading position might not be accurate when navigating to an annotation spanning two pages.
Fixed a bug where
URLSearchParams
did not work when passingURLSearchParams
to the constructor.
Breaking changes
The new options
IEpubReflowOptions.removeBottomMarginsOnFragmentedElements
andIEpubReflowOptions.removeTopMarginsOnFragmentedElements
default to true. This may cause content to appear closer to the top and bottom edge of the page compared to previous Colibrio Reader Framework versions. Set these options to false to keep the old behavior.The new options
IEpubContentProcessingOptions.horizontalOverflowMathMLStrategy
andIEpubContentProcessingOptions.horizontalOverflowTableStrategy
default toEpubContentOverflowStrategy.SCROLL
in order to improve legibility and accessibility. This will introduce horizontal scrolling within the page when the table or math elements do not fit horizontally. Set this option toEpubContentOverflowStrategy.SCALE
to keep the old behavior.The new option
IEpubContentProcessingOptions.horizontalOverflowMitigationMinFontSize
defaults to 16 pixels in order to improve accessibility. This may cause long words be broken up over more than one line. Set this option to 0 to keep the old behavior.The new option
IEpubContentProcessingOptions.verticalOverflowMitigationStrategy
defaults toEpubContentOverflowStrategy.SCROLL
in order to improve accessibility. This will introduce vertical scrolling within a page if not all content fits. Set this option toEpubContentOverflowStrategy.SCALE
to keep the old behavior.The event
syncMediaPlayerSeeking
will now contain theISyncMediaTimelinePosition
that was active before the seek. You can still access the target position usingISyncMediaPlayer.getTimelinePosition()
. The event that fires when the seek is completed,syncMediaPlayerSeeked
, will still contain the target position.IWpEntityData.name
is now anIWpLocalizableString
instead of anILocalizableString
.IWpLinkedResourceData.description
is now anIWpLocalizableString
instead of anILocalizableString
.IWpLinkedResourceData.name
is now anIWpLocalizableString
instead of anILocalizableString
.Changed type of
ISyncMediaObjectRef.type
fromSyncMediaObjectRefType | string
toSyncMediaObjectRefType
.Changed type of
ISyncMediaTimelineData.mediaObjectRefTypes
from(SyncMediaObjectRefType | string)[]
toSyncMediaObjectRefType[]
.Changed type of
ISyncMediaTimeline.getMediaObjectRefTypes()
from(SyncMediaObjectRefType | string)[]
toSyncMediaObjectRefType[]
.
Deprecations
The following methods and types have been deprecated in 4.0.0 but will still be fully functional until they are removed in the next major release.
Deprecated
IReaderPublicationNavigationItemData.locator
. Please use the navigation item directly with methods that accepts locators instead. For example:IReaderView.goTo(navigationItemData)
.Deprecated
IReaderPublicationNavigationItem.getLocator()
. Please use the navigation item directly with methods that accepts locators instead. For example:IReaderView.goTo(navigationItem)
.Deprecated
IUnresolvedContentLocation.getLocator()
.Deprecated
ISyncMediaPlayer.isPlaying()
. Please use!isPaused() && isReady()
instead.Deprecated
IReaderView.fetchRectsForVisibleContent()
. Please useVisiblePage.fetchRectsForVisibleContent()
.Deprecated
ISyncMediaPlayer.isPlaying
. Instead use!ISyncMediaPlayer.isPaused() && ISyncMediaPlayer.isReady()
.Deprecated
ReadingSystemEngine.setOptions
. Please set up all options when callingnew ReadingSystemEngine(options)
instead.
Removed old deprecated methods and types
Removed deprecated property
IZipArchiveInformation.sha1Signature
. Please useIZipArchiveInformation.signature.sha1Hash
instead.Removed deprecated method
IPublication.getMediaType()
. Please useIPublication.getType()
instead.Removed deprecated method
URLUtils.normalizePathnamePercentEncoding()
. Please useURLUtils.normalizePathnameEncoding()
instead.Removed deprecated option
IReaderViewPanZoomGestureOptions.maxPanOffsetHorizontal
. Please useIReaderViewOptions.transformManagerOptions.maxPanOffsetHorizontal
instead.Removed deprecated option
IReaderViewPanZoomGestureOptions.maxPanOffsetVertical
. Please useIReaderViewOptions.transformManagerOptions.maxPanOffsetVertical
instead.Removed deprecated option
IReaderViewPanZoomGestureOptions.maxScaleFactor
. Please useIReaderViewOptions.transformManagerOptions.maxScaleFactor
instead.Removed deprecated method
ISyncMediaPlayer.getApproximateElapsedTimeMsForTimelinePosition()
. Please useISyncMediaTimeline.getApproximateOffsetMs()
instead.Removed deprecated method
IReaderViewTransformManager.zoomToEventPosition()
. Please useIReaderViewTransformManager
.zoomToClientPosition(event.clientX, event.clientY, scale, ...)
instead.
Cleaned up Public API
The following methods and types were only ever meant to be used internally between the different framework modules and have been removed from the public framework API.
MediaFragmentSelectorUtils
EngineEventTargetNodeUtils
PageFlowDirection
RenderableState
IVisiblePageData.pageIndexInReflowedDocument
IVisiblePage.getPageIndexInReflowedDocument()
IReaderViewContentRangeChangeCallbacks
IEngineEventBus
IReadingSystemEngine.getEventBus()
IEngineEventDispatcher
IReaderViewPropertyTypeMap
IReaderViewPropertyChangedListener
IRenderableDocumentPageStream
IReaderDocumentRenderingContext
IPageIteratorContentLocation
IRenderableDocumentPageIterator
IReaderDocument.createRenderableDocument()
,createRenderableDocumentPageIterator()
,fetchEstimatedHeight()
,fetchEstimatedNumberOfPages()
MediaSourceFactory
IMediaSourceFactoryCreateUrlResult
ISyncMediaObjectRendererRuntime
ISyncMediaObjectRenderer.createRuntime()
anddestroyRuntime()
IRenderer.createRuntime()
,destroyRuntime()
,getVisiblePagesArea()
Many internal engine event constructors and parameters.