Fixing Bug #23687 requires calling HandleChannels from a third location. Before doing this, I should fix the duplicate code between the two locations that currently call it - see the referenced branch for an implementation.
As a bonus, this branch now also fixes computation of UserActionTime (the original branch tried to fix this, but I later discovered that it did it totally wrong, so I rebased the fix into the middle of it), and adds suitable assertions to the regression tests.
Might be nice to pull assertEquals from the gabble tests to simplefy some things (obviously not a blocker though)
Branch itself looks good :)
I do wonder if it won't be easier to review if it had been one big patch to move all the code over instead of 20 small ones
(In reply to comment #2)
> I do wonder if it won't be easier to review if it had been one big patch to
> move all the code over instead of 20 small ones
Possibly, but the code for some of the parameters isn't actually trivially equivalent to either of the previous implementations, so I wanted to implement (and test) it a bit at a time, to be able to look at each change in isolation.
Fixed in git.