Sweep link candidates by full target and reject impossible containment using polygon bounds. Keep the original clipped regions when optional deduplication exhausts its work budget. Cover dense HTML printing, PDF annotations, partial-work fallback, and target identity.
Pin the shared expansion API and leave clipping and page ownership in the adapter. Krilla handles synthesis contours, paint order, document-wide reuse, and searchable text.
Resolve font metrics and text paint together for native PDF culling and
filter raster allocation, following SkPDFStrike and SkStrokeRec. Replace
the unconditional origin/em guard for outline glyphs with measured bounds.
Align static TrueType bounds with the rendered side bearing and retain
conservative fallback for missing outlines. Empty glyphs do not expand
raster allocations; native advance boxes preserve whitespace semantics.
Add coverage for negative side bearings, variable/CJK fonts, skew, and
empty runs. The 20px/8px probe shrinks from 224x224 to 96x104 raster pixels
while retaining reference ink coverage and searchable text.
Correct the claim that ordinary HTML text shadows include stroke ink.
Chromium removes the stroke pass shadow looper when fill mode is present.
Compare shadow regions pixel for pixel against unstroked text for both
paint orders, and keep the SVG paint path outside this HTML contract.
Include the shared text-stroke and synthetic-bold ink expansion when
allocating filter fallback images, before applying the run transform.
Compare embedded PDF alpha coverage with a complete reference raster
for 100px hollow strokes at multiple scales and retain searchable text.
Use explicit miter joins and a shared miter limit of 4 for CPU and PDF
text strokes. Use the same conservative expansion for layout outsets
and native PDF clipping, including synthetic bold stroke widening.
Add deterministic triangle glyphs to cover pointed joins, bevel fallback,
and miter-only ink entering a PDF clip.
Route CDP Page.printToPDF and CLI PDF dumps through an owned snapshot PDF
backend with embedded subset fonts and logical text cluster mappings.
Preserve print layout isolation, page selection, and bounded local raster
fallbacks. Pin Krilla to upstream Git and share its font parsing dependencies
with the existing rendering stack where version constraints allow.
Add PDF extraction, pagination, graphics, and print lifecycle regressions,
fixed font fixtures, and reader and CDP smoke checks.
Refs #279.