Status report: consultancy team, week 44, 2024

Caolan

  • asan warning about missing mutex
    lock getWakeupsArray for reading by caolanm · Pull Request #10365 · CollaboraOnline/online · GitHub
  • measure SharedString visitor for ref
    counting reduction improvements, update, etc
  • autotext, experiment with trying to get autotext
    files put into the jail seen/working at all
  • cool#10177 debug a little to see why worker thread decompression
    seems laggy
  • debug with pranam why there is a crash with a redlined field
    https://gerrit.libreoffice.org/c/core/+/175808
  • autotext isn’t read from where one would initially
    expect
    • i.e. a /tmp/user/user/config/autotext dir from
      presets in desktop/source/app/userinstall.cxx
      with userinstall::finalize
      which uses utl::Bootstrap::locateUserInstallation(uri)
      but we actually attempt to read from
      /tmp/lue3h7e1.tmp/user/autotext
      where the default autotext paths to search for come from
      SubstitutePathVariables::SetPredefinedPathVariables
      aState = utl::Bootstrap::locateUserData( sVal );
      because preloadData sets a tmp user installation dir, and
      that one gets stuck as the dir for later loads
      from SynchronizeExtensionRepositories,
      to comphelper::EventLogger::EventLogger
      to SubstitutePathVariables singleton ctor
  • howto find where the .ui warning comes from and how to
    fix same
  • cool#10332 uncaught exception from NetworkInterface::list
    NetworkInterface::list can throw by caolanm · Pull Request #10385 · CollaboraOnline/online · GitHub
  • autotext
    • there are two bootstraps, rtl and unotools, unotools syncs
      at SECOND_INIT with reloadData
    • we do have a post-preinit effort to set the bootstrap
      variables to the expected dir, but PathSettings and
      SubstitutePathVariables already exist pointing to the
      tmp preload/preinit locations
  • Allow “F3” to get sent to core to trigger autotext
    Comparing master...private/caolanm/kit_presets · CollaboraOnline/online · GitHub
  • autotext
    • Add XInitialization support to PathSettings so it could be
      reinitialized after preinit so it updates its autotext etc paths
      to where they should be
    • get SubstituteVariables to update what path variables it
      substitutes when this resync of bootstrap settings happens
    • tweak debug-mode kit jail creation to also install a
      sample autotext
    • writer continue to fail to do anything sensible
    • writer will refuse to access a user’s personal usertext
      unless there happened to be an internal/shared autotext
      which is an odd situation, apparently ancient null deref
      workaround
      https://gerrit.libreoffice.org/c/core/+/175959
    • installing sample autotext now works
    • next to explore checkFileInfo and demo up getting user autotext
      etc from server to stick into jail.
    • readonly shared “org” autotext could either be put into the
      kit user autotext dir as a special case, or bind-mounted over
      where lo puts its “internal” one, the latter might be a better
      fit for the overall idea of layered forkits. Worry about that
      after getting user stuff in place.

Mike

  • Calc: Misaligned shape/chart/image positioning with browser zoom
    • Two-side: core + Online
    • Created initial core change, fixing some rounding errors affecting placement
    • Working on Online side
    • Broke grid rendering (found the problem)
    • The selection is misplaced

Tomaz

Analyze and close gaps to PDF-2.0

  • We can output documents identifying as as PDF-2.0
    • but they may not be valid PDF-2.0 documents
    • a lot of features that were deprecated, which shouldn’t be written into PDF-2.0
  • /Info dictionary has for the most part been deprecated
    • exceptions: /CreateDate and /ModDate
    • XMP metadata should be used instead
    • no need to keep them in sync anymore (requirement with previous versions)
    • changed the code to not write those elements, but write XMP metadata instead
    • we have written XMP metadata only when we had PDF/A or PDF/UA, but it is supported from PDF 1.4
    • I have enabled XMP metadata for all versions from PDF 1.4 on
  • All the old encryption methods have been deprecated - PDF 2.0 has an update one
    • AES-256 V6
    • We use the ultra old RC4, but with 128bit key length
    • Still, not good enough today
    • The AES versions use a completely different algorithm.
    • Implementing that.
    • Factored out CryptTools (wraps NSS or OpenSSL) from oox module (used for encryption there) and put it into comphelper
      • Hash - for SHA hashing was already moved there some years ago
    • WIP