[results.webkit.org Timeline] Performance improvements
authorcommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 6 Aug 2019 17:56:57 +0000 (17:56 +0000)
committercommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 6 Aug 2019 17:56:57 +0000 (17:56 +0000)
commit31661b8c6cd18e0f864da57aa833c16468db5403
tree95334bb008fda3ecfe062324db2db889a20cd318
parent84f23799a20b74d02b80a532e01bbe249e645fa7
[results.webkit.org Timeline] Performance improvements
https://bugs.webkit.org/show_bug.cgi?id=200406

Patch by Zhifei Fang <zhifei_fang@apple.com> on 2019-08-06
Reviewed by Jonathan Bedard.

1. Unhook the scroll event when a series/axis have been removed from the container
2. Fix the axis's cache data structure out of sync.
3. Use position:sticky to reduce the scrolling blink when update the presenter's transform
4. Use intersection observer to detect if the canvas on screen or not, if a canvas is not on the screen, we do nothing, this will eliminate render requests we send out.

* resultsdbpy/resultsdbpy/view/static/library/js/Ref.js:
(Signal.prototype.removeListener):
(prototype.stopAction): Unregsiter an action handler
(Ref):
(Ref.prototype.apply):
(Ref.prototype.destory):
* resultsdbpy/resultsdbpy/view/static/library/js/components/BaseComponents.js:
(ApplyNewChildren):
* resultsdbpy/resultsdbpy/view/static/library/js/components/TimelineComponents.js:
(Timeline.CanvasSeriesComponent):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@248305 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Tools/ChangeLog
Tools/resultsdbpy/resultsdbpy/view/static/library/js/Ref.js
Tools/resultsdbpy/resultsdbpy/view/static/library/js/Utils.js
Tools/resultsdbpy/resultsdbpy/view/static/library/js/components/BaseComponents.js
Tools/resultsdbpy/resultsdbpy/view/static/library/js/components/TimelineComponents.js