Files
crosspoint-reader-mod/chat-summaries/2026-02-15_merge-master-css-perf.md
cottongin dfbc931c14 mod: Phase 1 - bring forward mod-exclusive files with ActivityManager migration
Brings ~55 mod-exclusive files to the upstream-based mod/master-resync branch:

Activities (migrated to new ActivityManager pattern):
- Clock/Time: SetTimeActivity, SetTimezoneOffsetActivity, NtpSyncActivity
- Dictionary: DictionaryDefinitionActivity, DictionarySuggestionsActivity,
  DictionaryWordSelectActivity, LookedUpWordsActivity
- Bookmark: EpubReaderBookmarkSelectionActivity
- Book management: BookManageMenuActivity, EndOfBookMenuActivity
- OPDS: OpdsServerListActivity, OpdsSettingsActivity
- Utility: DirectoryPickerActivity, NumericStepperActivity

Utilities (unchanged):
- BookManager, BookSettings, BookmarkStore, BootNtpSync
- Dictionary, LookupHistory, TimeSync, OpdsServerStore

Libraries: PlaceholderCover, TableData, ChapterXPathIndexer
Scripts: inject_mod_version, generate_book_icon, preview_placeholder_cover
Docs: KOReader sync XPath mapping

Migration changes:
- ActivityWithSubactivity -> Activity base class
- Callback constructors -> finish()/setResult() pattern
- enterNewActivity() -> startActivityForResult()
- Activity::RenderLock&& -> RenderLock&&

These files won't compile yet - they reference mod settings and I18n
strings that will be added in subsequent phases.

Made-with: Cursor
2026-03-07 15:10:00 -05:00

43 lines
1.7 KiB
Markdown

# Merge upstream master (CSS perf #779) into mod/master-img
**Date**: 2026-02-15
## Task
Merge the latest changes from `master` (upstream) into `mod/master-img`.
## Changes Merged
One upstream commit: `46c2109 perf: Improve large CSS files handling (#779)`
This commit significantly refactored the CSS subsystem:
- Streaming CSS parser with `StackBuffer` for zero-heap parsing
- Extracted `parseDeclarationIntoStyle()` from inline logic
- Rule limits and selector validation
- `CssParser` now owns its `cachePath` and manages caching internally
- CSS loading skipped when "Book's Embedded Style" is off
## Conflicts Resolved
### Section.cpp (2 regions)
- Combined mod's image support variables (`contentBase`, `imageBasePath`) with master's new CSS parser loading pattern (`cssParser->loadFromCache()`)
- Merged constructor call: kept mod's `epub`, `contentBase`, `imageBasePath` params while adopting master's `cssParser` local variable pattern
- Added master's `cssParser->clear()` calls on error/success paths
### CssParser.cpp (1 region)
- Accepted master's complete rewrite of the CSS parser
- Ported mod's `width` CSS property handler into the new `parseDeclarationIntoStyle()` function
## Auto-merged Files Verified
- `CssStyle.h`: `width` property and supporting code preserved
- `platformio.ini`: `PNGdec` library and `PNG_MAX_BUFFERED_PIXELS` preserved; `[env:mod]` section intact; master's `gnu++2a` and `build_unflags` applied
- `ChapterHtmlSlimParser.h`: image/table support members preserved
- `RecentBooksStore.cpp`: `removeBook()` method preserved
- `Epub.cpp`, `Epub.h`, `CssParser.h`, `ReaderActivity.cpp`: auto-merged cleanly
## Build Result
- `pio run -e mod` succeeded with zero errors
## Commit
- `744d616 Merge branch 'master' into mod/master-img`