Bug 156663

Summary: Web Inspector: DataGrid should be virtualized so it only renders visible rows
Product: WebKit Reporter: Timothy Hatcher <timothy>
Component: Web InspectorAssignee: Timothy Hatcher <timothy>
Status: RESOLVED FIXED    
Severity: Normal CC: bburg, graouts, joepeck, mattbaker, nvasilyev, timothy, webkit-bug-importer
Priority: P2 Keywords: InRadar
Version: WebKit Local Build   
Hardware: All   
OS: All   
Attachments:
Description Flags
Patch
none
Patch joepeck: review+

Description Timothy Hatcher 2016-04-16 09:50:27 PDT
We make a large table that is causing major rendering hangs. We should only need to make a table for the visible portion of the table (plus some padding rows to reduce scrolling flashes).
Comment 1 Radar WebKit Bug Importer 2016-04-16 09:50:55 PDT
<rdar://problem/25765256>
Comment 2 Timothy Hatcher 2016-04-18 19:50:08 PDT
Created attachment 276684 [details]
Patch
Comment 3 Matt Baker 2016-04-18 20:15:45 PDT
Comment on attachment 276684 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=276684&action=review

> Source/WebInspectorUI/UserInterface/Views/DataGrid.js:40
> +        this.rows = [];

This could be _rows, since it's an implementation detail only accessed by DataGrid and DataGridNode.

> Source/WebInspectorUI/UserInterface/Views/DataGrid.js:547
> +            var dividerElement = headerCellElement.createChild("div", "divider");

let

> Source/WebInspectorUI/UserInterface/Views/DataGrid.js:549
> +            var collapseDiv = headerCellElement.createChild("div", "collapser-button");

let
Comment 4 Timothy Hatcher 2016-04-19 15:41:30 PDT
Created attachment 276766 [details]
Patch
Comment 5 Joseph Pecoraro 2016-04-19 16:12:34 PDT
Comment on attachment 276766 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=276766&action=review

r=me

> Source/WebInspectorUI/ChangeLog:12
> +        Call uplateLayoutIfNeeded since we don't use views here.

Typo: "uplate" in many places in this ChangeLog.

> Source/WebInspectorUI/UserInterface/Views/DataGrid.js:252
> +    set inline(x)

These setters should bail if the value didn't change.

> Source/WebInspectorUI/UserInterface/Views/DataGrid.js:1089
> +        // A sortable data grid might not be in added to a view, so it needs its layout updated here.

Grammar: "might not be in added"
Comment 6 Joseph Pecoraro 2016-04-19 16:12:53 PDT
Comment on attachment 276766 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=276766&action=review

> Source/WebInspectorUI/ChangeLog:33
> +        when the virtural table starts at an odd row.

Typo: "virtural"
Comment 7 Timothy Hatcher 2016-04-19 16:42:54 PDT
Comment on attachment 276766 [details]
Patch

https://trac.webkit.org/changeset/199747