Skip to content

Take odrcore 6.9.0 - #175

Merged
andiwand merged 3 commits into
mainfrom
take-odrcore-6.9.0
Aug 18, 2026
Merged

Take odrcore 6.9.0#175
andiwand merged 3 commits into
mainfrom
take-odrcore-6.9.0

Conversation

@andiwand

@andiwand andiwand commented Aug 18, 2026

Copy link
Copy Markdown
Member

6.7.1 to 6.9.0, taking 6.8.0 on the way. 6.9.0 was tagged while this was being
written, so the pin is on a real release, not a guess.

What we ask for that we could not before

A document is drawn in the reader's own appearance. HtmlConfig.colorScheme
arrived in 6.8.0 and we set it to .system, so the page carries both sheets and
picks between them from prefers-color-scheme. The web view answers that from
the device setting, which means turning the phone dark while a document is open
costs no second translation - the page swaps itself.

The store copy for 1.35 said documents follow the light and dark appearance.
The engine used to do that on its own; since the HTML rewrite it renders light
unless asked, so this is that sentence becoming true again rather than a new
promise.

A pdf has no dark view - FileTypeCapabilities.colorScheme says so for every
type - and stays on white. Nothing to do about that here.

Our own two pages, "loading" and the error, are a web view's default styling,
which is white whatever the device says. They now name color-scheme so they
are dark alongside the document instead of flashing white in front of it.

The four config options 6.9.0 deprecates (embedOutline, noDrm,
backgroundImageFormat, backgroundImageDpi) are ones we never set.

What comes with it, for free

  • A filled-in pdf form shows what was filled in, and a marked-up one its markup.
  • A scanned pdf page is no longer blank: JBIG2Decode images decode.
  • A pdf page is turned the way its /Rotate says, justified text is spaced as
    the file asks, and a subset font's glyph names resolve.
  • A .docx keeps its paragraph spacing, line height and table row heights, and
    a table follows the style it names.
  • Prose with a comma in every line is read as text, not as a two column table.
  • A megabyte of text opens in under a second where it took 38.

Checked

xcodebuild test on an iPhone 17 simulator, 51 passing.

Two tests are new:

  • The served page carries a (prefers-color-scheme: dark) sheet.

  • Printing. Print takes the page the web view is showing, and a dark page
    printed as it stands is pale ink on white paper - the words would be gone.
    PrintAppearanceTests renders a print page out of a web view held in a dark
    window and measures it: the paper comes back white and the ink dark, so the
    web view prints in light of its own accord and the menu needs nothing.

    It asserts matchMedia first, because the trap here is that a web view not in
    a window ignores an appearance set on it - the first version of this test
    passed while never having been dark at all.

I also read the rendered colours back out of a page served in a dark window,
which is where the confidence that this works end to end comes from: body
rgb(1, 4, 9), text rgb(230, 237, 243), the sheet rgb(22, 27, 34), against
white and black in light. A screenshot would have been better, but WebKit renders
out of process and a unit test host photographs it blank.

🤖 Generated with Claude Code

andiwand and others added 3 commits August 18, 2026 21:58
6.7.1 to 6.9.0. A document is now drawn in the reader's own light or dark
appearance, which the engine learned in 6.8.0, and our loading and error
pages follow it too.

Printing is unaffected: a dark page still comes out on white paper, which
the new test says.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01W2XM93Raj1jyvUuYmpQrcz
1.41 is submitted but not out, so this build goes under its heading rather
than opening a new one. Its engine entry now names 6.9.0.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01W2XM93Raj1jyvUuYmpQrcz
The changelog entries read as what a reader of the app notices, and no
longer name the engine or its version. The English store copy picks up the
dark appearance.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01W2XM93Raj1jyvUuYmpQrcz
@andiwand
andiwand enabled auto-merge (squash) August 18, 2026 20:09
@andiwand
andiwand merged commit a229517 into main Aug 18, 2026
4 checks passed
@andiwand
andiwand deleted the take-odrcore-6.9.0 branch August 18, 2026 20:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant