noVNC is in the thick of some cleanup and restructuring, partly in this pullrequest: https://github.com/kanaka/noVNC/pull/368
We should stay as close to upstream as possible and should therefore do a new vendordrop.
This bug includes code review and merging of the upstream work.
I've reviewed all of the upstream code. Once the changes are merged upstream I will do a vendor drop and solve the merge to our tree.
We decided to move this to 4.4 since upstream didn't merge in time.
https://github.com/kanaka/noVNC/pull/368 is now merged upstream
Preparatory commits to minimize diffs to upstream: 29589, 29592, 29594
Vendordrop finished in r29596.
Due to the substantial rewrites upstream all of the ThinLinc specific code found in noVNC had to be refactored and reworked. As a part of this work I've modified our code to make the ThinLinc specific parts easier to distinguish in order to make future vendordrops easier.
I've done a few quick and unscientific tests using the CPU profiler in Chrome. I played a 10 second video in the session and compared the CPU usage by the HTML5 client before and after these changes. The sample time was 10 seconds.
The result was an average of 9% improvement in processing speed in the JavaScipt code. However, it's very important to note here that, out of the 10 samples, big improvements were only seen in 3 . In the remaining 7 samples the differences between before and after were below 1%.
At the moment I don't have any explanations to why improvements only could be seen in in 3 out of the 10 samples. However, I draw the conclusion that the changes brought in from upstream are at least not lowering the performance.. Good enough for me.
Created attachment 591 [details]
CPU usage comparison before and after the refactor, Chrome CPU profile samples
Difficult to do any exact measurements here. But Firefox profiler seems to indicate that it is keeping up with the data properly at least, and Firefox is not consuming massive amounts of CPU. There are some glitches when the garbage collector hits, but its not a big problem.