Status report: consultancy team, week 35, 2023


  • tdf#144906 unset g_DragSource if drag end callback never called
    → a frequent upstream crasher, not sure if this fixes it, but
    its definitely not right as it is.
  • turn anonymizing formula cell content in logs into a pr
    avoid logging user content from spreadsheet cells by caolanm · Pull Request #7177 · CollaboraOnline/online · GitHub
  • follow up for long string in ui for tdf#156611
  • pptx import of Wingdings font missing symbol charset
  • poke at cool#7165 avx2 acceleration for rle
    → nothing I have supports avx512, nor any of the
    staging etc setups, so look at avx2
  • get cool#7165 avx2 acceleration for rle bitmask
    generated through avx2 with same output as existing
  • switch over to looking at T41631: websocket urp to
    get merged etc.
  • websocket urp, fix up some things
  • build Java-Websocket from source instead of jar
    binary blob
  • cool#6616 show (deskop) progress bar for svg export
  • doesn’t solve the problem there, just good to have
    a progress bar for long lived process
  • put websocket thing for upstream review
  • investigate jodconverter demo
  • merge urp over websocket thing to upstream core and 23-05
  • debug jodtconverter demo
    • “local”, “remote”, and “external”, which are
      “pipe”, “collabora online’s convert-to” and “external”.
      “external” is the existing socket case, so the one we want
      to pursue here. jodtconverter build its urp connection string itself
      so need to expose that and/or add something to build a websocket
      urp string. Hacked that in locally for experimental purposes.
  • running into a set of timeout issues
    a) online times out with “is taking too long to load. Will kill
    process” after a while because from online’s current perspective no
    document loads. With that block hacked out for demo purposes then the
    connection still drops.
    b) Java-WebSocket client eventually gets/generates a onClose event
    with message “onClose because of: The connection was closed because the
    other endpoint did not respond with a pong in time”
    With setConnectionLostTimeout(0) hacked into WebsocketConnection
    in ridljar, then that problem can be worked-around
    c) there was a full second delay between reads and writes
    → need a flush there:
    d) eventually things appear to hang/get stuck anyway
    → pushtoMainThread puts into a queue which is processed during
    SocketPoll::poll and that doesn’t happen. TODO figure that out.




Worked on “Lots of logging churning on the console”. While
couldn’t reproduce the logging issue (may have been fixed after
cool#7164 use existing delay queue for 'canonicalidchange' by caolanm · Pull Request #7170 · CollaboraOnline/online · GitHub), think the issue
was probably akin to the tilecombine command sending the id to the core

  • Reverted this and found a different way to solve the issue that this
    change was made for (preview bugs in impress) which is now pending CI.


Finish document themes for Impress

  • backporting to co-23.05
  • changed back to allow a theme change when not on master page in impress
  • changing theme in impress now changes all master pages
    • in MSO a master slide can have multiple layouts, layouts are
      converted to master pages in LO, but there is nothing like a “master slide”
    • theme is defined per master slide - so a change of the theme on a
      master slide changes the theme for all layouts, but in LO we can’t do this
    • in LO we need to change all master pages one by one to get the same
      effect, which is annoying for the user
    • for now it is therefore better (less annoying for the user) to
      change the theme for all master pages instead
  • implemented theme export and import in Calc for ODF
    • missed implementing that, concentrated on OOXML
    • refactored the code to reuse the same import and export for Writer
      and Impress, then added it to Calc
    • written the theme test in Calc
  • gone through gerrit code review comments and fixed various issues found
  • reviewed and backported (co-23.05) Regina’s changes to make theme
    import/export also work in Draw
    • we limited it to Impress only, but there is no more reason to still
      have this limit

Regression fixing tdf#147704 :

  • issue is with TIFF metadata reading
  • we implemented on-demand reading of images, sp we don’t load the
    images on document load
    • but we now rely on the metadata reading (width and height) to not
      force a full read early
    • for TIFF images the metadata wasn’t read correctly - so we got
      width and height in pixels = 0
    • this caused an issue in the regression bug
    • fixed the metadata reading fixed the bug
    • also changed tiff tag reading to be more robust and not be
      arbitrarily limited which would cause to return no metadata