* SUMMARY 11% of time in TimelineRecording spent updating DataGrid that is not visible DataGrid._updateVisibleRows is taking up 11% of time, including many forced layouts, when the DataGrid is not even visible. In this case, the TimelineRecordingProgressView is showing, but in other cases, it likely isn't updating unless there is some kind of resize. * STEPS TO REPRODUCE 1. Inspect theverge.com 2. Show Timeline tab 3. Show Scripts > Call Trees 4. Start Recording => Lots of time and forced layouts in DataGrid._updateVisibleRows
<rdar://problem/26239051>
Created attachment 278728 [details] [Patch] Proposed Fix
Comment on attachment 278728 [details] [Patch] Proposed Fix View in context: https://bugs.webkit.org/attachment.cgi?id=278728&action=review > Source/WebInspectorUI/UserInterface/Views/TimelineView.js:312 > + if (WebInspector.timelineManager.isCapturing() && !this.showsLiveRecordingData) The ChangeLog says if the view supports live, but this does !live. Which is right?
Comment on attachment 278728 [details] [Patch] Proposed Fix View in context: https://bugs.webkit.org/attachment.cgi?id=278728&action=review >> Source/WebInspectorUI/UserInterface/Views/TimelineView.js:312 >> + if (WebInspector.timelineManager.isCapturing() && !this.showsLiveRecordingData) > > The ChangeLog says if the view supports live, but this does !live. Which is right? The ChangeLog is correct. Copy paste error.
Created attachment 278736 [details] [Patch] Proposed Fix
Comment on attachment 278736 [details] [Patch] Proposed Fix Clearing flags on attachment: 278736 Committed r200779: <http://trac.webkit.org/changeset/200779>
All reviewed patches have been landed. Closing bug.
This is great! But there is still a concern that when a datagrid is showing (say layout and rendering) the datagrid is constantly forcing layouts. I wonder if we can improve _updateVisibleRows to not do as much work when its constraints are not changing. For example the view is not resizing and not scrolling, it should probably not always force a layout.