Bug 127440 - Web Inspector: Support collapsing call site records into the resource timeline
Summary: Web Inspector: Support collapsing call site records into the resource timeline
Alias: None
Product: WebKit
Classification: Unclassified
Component: Web Inspector (show other bugs)
Version: 528+ (Nightly build)
Hardware: All All
: P2 Normal
Assignee: Timothy Hatcher
Keywords: InRadar
Depends on:
Reported: 2014-01-22 12:06 PST by Timothy Hatcher
Modified: 2014-01-22 15:23 PST (History)
4 users (show)

See Also:

Patch (30.62 KB, patch)
2014-01-22 12:13 PST, Timothy Hatcher
joepeck: review+
joepeck: commit-queue-
Details | Formatted Diff | Diff
Screenshot (446.32 KB, image/png)
2014-01-22 12:29 PST, Timothy Hatcher
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Timothy Hatcher 2014-01-22 12:06:30 PST
When a resource is collapsed the call site records should be shown on the resource row.
Comment 1 Radar WebKit Bug Importer 2014-01-22 12:07:12 PST
Comment 2 Timothy Hatcher 2014-01-22 12:13:07 PST
Created attachment 221888 [details]
Comment 3 Timothy Hatcher 2014-01-22 12:29:02 PST
Created attachment 221891 [details]
Comment 4 Joseph Pecoraro 2014-01-22 13:50:51 PST
Comment on attachment 221888 [details]

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


> Source/WebInspectorUI/ChangeLog:24
> +        Add a shadow to provide some negative space between juxtaposed records. Only needed when not expanded and not netwrok records.

Typo: netwrok

> Source/WebInspectorUI/ChangeLog:69
> +        Tweaked styles to look bettwen when selected.

Typo: bettwen => better

> Source/WebInspectorUI/UserInterface/OverviewTimelineView.js:104
> +            // Check the filters again since the current time change might have revealed this node. Start and end time canges are handled by TimelineContentView.

Typo: canges => ranges

> Source/WebInspectorUI/UserInterface/OverviewTimelineView.js:105
> +            WebInspector.timelineSidebarPanel.updateFilter();

Maybe you can have an updateFilter(oldCurrentTime) and only need to update records that came after oldCurrentTime to hopefully reduce the amount of work.

> Source/WebInspectorUI/UserInterface/TimelineDataGridNode.js:67
> +    collapse: function()

Can each of these (collapse, expand, appendChild, insertChild, etc.) call this.needsGraphRefresh instead of this.refreshGraph to combine potential multiple updates.

If that is the case, you can remove the if (!this._graphDataSource) check because needsGraphRefresh does that for you.

> Source/WebInspectorUI/UserInterface/TimelineDataGridNode.js:371
> +            for (var childNode of this.children) {
> +                if (!(childNode instanceof WebInspector.TimelineDataGridNode))
> +                    continue;

This only goes 1 level deep. I would not have expected that. E.g. if someone collapses a main resource (index.html in the screenshot) I would expect all the bubbles to bubble up into one row. This for loop would need to be a recursive function willing to dig deeper.
Comment 5 Timothy Hatcher 2014-01-22 14:59:11 PST
I made it recursive and removed the need for appendChild, insertChild, etc.

Comment 6 Timothy Hatcher 2014-01-22 15:23:46 PST
Follow up: https://trac.webkit.org/r162564