Status report: consultancy team, week 3, 2024


  • crashtesting for the most
    common one
  • ofz#65809 Direct-leak in new conditional formatting import
  • “optimize single cell invalidations”
  • we invalidate calc cells from the left of the affected cell to
    the end of the full row. We have the code used by optimal col
    width that we could use to identify the max bound the old and new
    text would take and pass that around as a hint. There are some RTL
    and alignment and so on issues, but we can at least take the common
    simple cases and get those to not require the full row to be blown
  • “debug latest fuzzing failures”
  • “debug extra invalidation rectangle with multiple views
    in calc”
  • Seems to happen sometimes and not others depending on various
    zooms and the order of operations in different views. Finally
    figure out that the zoom of the last view to leave the document
    is saved in its settings, and that zoom gets set on load to the
    calc GridWindow. Later on during load we change the clientZoom
    which affects the ViewData Zoom, but that doesn’t always
    get mirrored to the GridWindows (but does if the document
    is modified by keyboard changes), so if the docs are set
    to different zooms after load, and a change is made in one,
    then the other one will report an incorrect invalidation rectangle
  • fix cool#7769 invalidation seen in calc on save
  • “sheet wide invalidation on editing cell”: debug extra invalidation rectangle seen with calc
    document with zoom in settings. Try to find the place that
    the ViewData zoom gets set to the ScGridWindow MapMode zoom
    when there is an actual edit in that view to see where things
    happen in the working case.
  • finish cool#7769 invalidation seen in calc on save with test and
    port about the place
  • finish “sheet wide invalidation on editing cell”: optimize single cell invalidations
    The working case seems to be working by chance where we
    typically push and pop the ViewData MapMode to the GridWindows
    but have an early return that skips the pop which doesn’t
    look deliberate. But that sync of ViewData and GridWindow
    MapMode looks exactly like what we want, so make that explicit
    in setClientZoom so we get this desired sync even if the user
    doesn’t enter any data.
  • fix the various push/pop things in upstream master calc to
    be ScopeGuards
  • Related to “Writer is slow it is hanging in community meeting when copy /pasting” better session updates deltas display
    Private/caolanm/better session updates deltas display by caolanm · Pull Request #8063 · CollaboraOnline/online · GitHub
  • get sent yet another set of security issues
    → though we might have actually squashed 2 of 3 with the last
    round of work, need to check and have a look at the other one
  • long term profiles didn’t appear this week, add extra logging
    to see what is going on there. perf script crashing?



“The mouse doesn’t get activated in the cell that it needs to be activated”

  • Merged the patch to remove changing the GridWindow size in paintTile to master
  • Some Calc behavior observations:
    • The main difference of setting the GridWindow size to viewport size is that the text edit box(for a cell) doesn’t go beyond current bounds
    • This is the same behavior as in desktop client
    • Currently the view responsible for tiles has the size set to document size, so the text edit boxjust continues and our view changes
    • But the view that has the GridWindow set, properly stops at the edge of our viewport
  • Finished with that for now

“Calc: add currency dropdown to the notebookbar”

  • Added WIP patches
  • Trying to understand what needs to be added to support this properly
  • Got the dropdown, but need to figure out what to do next
  • Looked at the code how the list of currencies is added to the list
    • The currency is not the only thing important, but also the country
    • Added a list of currency + country, which should be on top
    • Then skip at iteration


Worked on Clipboard: Implement permissions for pasting in Chrome-based browsers · Issue #8023 · CollaboraOnline/online · GitHub