Status report: consultancy team, week 8, 2025

Caolan

  • experiment with splitting up StorageBase::validate to
    see if the piece that uses DNS could use the async DNS
    and get its cached result. so this piece gets the same results
    as the async connect.
    • that looks plausible for wsd/RequestVettingStation.cpp
      and wsd/wopi/WopiProxy.cpp
    • but less so for the StorageBase::create use
  • maybe if we do the dns query at the entry point to the whole
    process and bubble resolvedHost alongside the uri throughout
    • trying this becomes unwieldy pretty fast
  • rework sync dns to reuse async dns to share its cache,
    more straight forward at least
    fix coolmap crash by caolanm · Pull Request #11207 · CollaboraOnline/online · GitHub
  • memory-optimization
    • fix coolmap crash
    • prototype calling type detection during preload to share that
      between children, need to provide zip data to get it to load
      office file format related stuff
  • file descriptor leak seen with cypress tests
  • turns out that this is since the autotext presets installation,
    nothing closes the sockets used to download these. A sync download
    will close the socket as a side effect of how that works, but async
    download doesn’t.
  • file descriptor leak
  • A plausible fix for the new ones
    asyncRequest doesn't close the connection by caolanm · Pull Request #11213 · CollaboraOnline/online · GitHub
  • I think there are two additional sockets per document “leaking”,
    maybe from the fileserver keep-alive, needs some more examination
  • memory-optimization, submit patch to preload typedetection
    https://gerrit.libreoffice.org/c/core/+/182010

Mike

  • Missing “underlining” on a long row of space characters
    • A “regression” from https://gerrit.libreoffice.org/c/core/+/161400
    • Missing support for Word’s ulTrailSpace compat option
    • Tried to avoid making SwHolePortion for the part that needs to stay underlined
    • That breaks “Word-compatible trailing blanks”, because it starts to participate in alignment (it must not)
    • An idea: split the SwHolePortion into two, and make the one inside the page margins to draw underline
    • Making it in SwTextGuess::Guess is complicated; breaks the smart shrinking feature
    • SwTextPortion::Format_ looks suitable
    • Some pre-existing problems need to be fixed
    • Merged the master patches
    • The remaining problems postponed

Tomaz

PPTX – font embedding

  • Making MSO accept LO embedded fonts
  • MSO has cloud fonts, which will download the font in case the font is missing
    • makes it a PITA to figure out if the font is actually used - need to turn off connection and delete the cache
    • a bit of success with Roboto font - it seems
      • it used the font and it also exported the same font
    • most fonts still don’t work however and not at all in MSO Online
    • trying to do EXACTLY what MSO does, but this needs also attributes that we currently don’t export (panose and stuff)
    • and as close to the EOT structure as MSO uses… (version 0x00020002 instead of 0x0002001 we use) even if it doesn’t make a difference
    • stop with this for now to get other needed bits in (embedded font import), then fix this afterwards
  • Implemented import of embedded fonts
    • round-trip works fine - we can read EOT perfectly unlike MSO
  • Added TTF Reader - will reuse more code in the future with sft.hxx
    • Tested reading of Ahem.ttf testing font
  • Added more tests

Miklos

Worked on Implement Per-User Change Tracking · Issue #11226 · CollaboraOnline/online · GitHub