ReadViewSDK/Sources/RDReaderView/EPUBUI
shen d20196ee34 feat: configurable chapter window & parallel metadata parsing with benchmark
1. Configurable chapter window size (onDemandChapterWindowSize: 3-15)
   - Parameterized window radius in RDEPUBChapterRuntimeStore
   - Updated RDEPUBChapterWindowCoordinator to use configurable radius
   - RDEPUBChapterWindowSnapshot.from() accepts chapter array instead of fixed prev/next
   - Even numbers round up to odd (4→5), min 3, max 15

2. Configurable metadata parsing concurrency (metadataParsingConcurrency)
   - Default equals CPU core count
   - Parallel execution via OperationQueue in paginateMetadataOnly
   - Each worker creates independent builder instance
   - NSLock protects result aggregation

3. Per-chapter and total wall-clock timing instrumentation
   - Separated render vs I/O timing per chapter
   - Summary log with wallClockMs, renderTotalMs, writeTotalMs, avgRenderMs
   - Timing stored in RDEPUBReaderContext for test access

4. UI automation test infrastructure
   - Added --demo-window-size, --demo-concurrency, --demo-clear-cache launch args
   - DemoReaderState exposes windowSize, parseMs, parseConcurrency
   - ConfigurableWindowTests: 5 test cases for window size 3/5/15
   - ConcurrentParsingTests: 4 test cases for concurrency 2/4
   - MetadataParseBenchmarkTests: serial vs parallel benchmark

5. Bug fixes
   - Fixed page snap-back during background parsing (isUserInteracting check)
   - Reduced BookPageMap refresh frequency from 16 to 32 chapters
   - Moved waitForReadingInteractionToSettle outside operation loop

6. Design doc: dual-layer PageMap (estimated + precise mixed)
2026-06-03 23:38:11 +08:00
..
ReaderController feat: configurable chapter window & parallel metadata parsing with benchmark 2026-06-03 23:38:11 +08:00
Settings feat: configurable chapter window & parallel metadata parsing with benchmark 2026-06-03 23:38:11 +08:00
TextPage feat: improve native text selection and annotation actions 2026-06-01 21:29:41 +08:00
RDEPUBReaderBottomToolView.swift feat(reader): 增强阅读器功能与 UI 测试支持 2026-05-31 23:56:54 +08:00
RDEPUBReaderChapterListController.swift feat(reader): 实现大书快速进入与增量分页路径 2026-06-02 21:16:57 +08:00
RDEPUBReaderController.swift refactor: split reader architecture and chrome handling 2026-05-31 21:47:54 +08:00
RDEPUBReaderController+ContentDelegates.swift feat: complete large-book pagination runtime and UI coverage 2026-06-03 17:47:16 +08:00
RDEPUBReaderController+DataSource.swift feat: complete large-book pagination runtime and UI coverage 2026-06-03 17:47:16 +08:00
RDEPUBReaderController+PublicAPI.swift feat: complete large-book pagination runtime and UI coverage 2026-06-03 17:47:16 +08:00
RDEPUBReaderController+RenderSupport.swift docs: 补充注释、修正过时文档、清理重复内容 2026-06-01 09:33:23 +08:00
RDEPUBReaderController+RuntimeBridge.swift feat: complete large-book pagination runtime and UI coverage 2026-06-03 17:47:16 +08:00
RDEPUBReaderController+TableOfContents.swift feat: complete large-book pagination runtime and UI coverage 2026-06-03 17:47:16 +08:00
RDEPUBReaderDelegate.swift refactor: 添加中文注释 + 优化模块结构 2026-05-25 10:19:14 +08:00
RDEPUBReaderHighlightsViewController.swift feat(reader): 实现大书快速进入与增量分页路径 2026-06-02 21:16:57 +08:00
RDEPUBReaderPersistence.swift refactor: 添加中文注释 + 优化模块结构 2026-05-25 10:19:14 +08:00
RDEPUBReaderTableOfContentsItem.swift refactor: 添加中文注释 + 优化模块结构 2026-05-25 10:19:14 +08:00
RDEPUBReaderToolView.swift refactor: 添加中文注释 + 优化模块结构 2026-05-25 10:19:14 +08:00
RDEPUBReaderTopToolView.swift feat(reader): 增强阅读器功能与 UI 测试支持 2026-05-31 23:56:54 +08:00
RDEPUBViewportTypes.swift docs: 补充注释、修正过时文档、清理重复内容 2026-06-01 09:33:23 +08:00
RDEPUBWebContentView.swift feat(epub): align wxread css and overlay pagination behavior 2026-05-25 22:15:24 +08:00
RDEPUBWebDecorationOverlayView.swift docs: 补充注释、修正过时文档、清理重复内容 2026-06-01 09:33:23 +08:00
RDURLReaderController.swift feat: configurable chapter window & parallel metadata parsing with benchmark 2026-06-03 23:38:11 +08:00
UIColor+RDEPUBHex.swift docs: 补充注释、修正过时文档、清理重复内容 2026-06-01 09:33:23 +08:00