12018-09-21 Devin Rousso <drousso@apple.com>
2
3 Web Inspector: group media network entries by the node that triggered the request
4 https://bugs.webkit.org/show_bug.cgi?id=189606
5 <rdar://problem/44438527>
6
7 Reviewed by NOBODY (OOPS!).
8
9 Introduces a `WI.NavigationItem` for changing whether network entries are grouped by the
10 node that initiated the load (if appliable). When grouped by node, a tree-like layout of the
11 table cells (including expand/collapse) is used for resources that share the same initiator
12 node. The values for the node's cell are based on it's initated resources.
13
14 * Localizations/en.lproj/localizedStrings.js:
15 * UserInterface/Base/Setting.js:
16
17 * UserInterface/Controllers/DOMTreeManager.js:
18 (WI.DOMTreeManager):
19 (WI.DOMTreeManager.prototype._mainResourceDidChange):
20 Whenever the frame navigates, re-reqeust the document so that `NetworkAgent` is able to send
21 valid `nodeId` for each request's `initiatorNode`. This means that the document should
22 always be available.
23
24 * UserInterface/Views/NetworkTableContentView.js:
25 (WI.NetworkTableContentView):
26 (WI.NetworkTableContentView.prototype.get filterNavigationItems):
27 (WI.NetworkTableContentView.prototype.closed):
28 (WI.NetworkTableContentView.prototype.reset):
29 (WI.NetworkTableContentView.prototype.tableSortChanged):
30 (WI.NetworkTableContentView.prototype.tableSelectedRowChanged):
31 (WI.NetworkTableContentView.prototype.tablePopulateCell):
32 (WI.NetworkTableContentView.prototype._populateNameCell.createIconElement): Added.
33 (WI.NetworkTableContentView.prototype._populateNameCell):
34 (WI.NetworkTableContentView.prototype._populateDomainCell.createIconAndText): Added.
35 (WI.NetworkTableContentView.prototype._populateDomainCell):
36 (WI.NetworkTableContentView.prototype._populateInitiatorCell):
37 (WI.NetworkTableContentView.prototype._populateTransferSizeCell):
38 (WI.NetworkTableContentView.prototype._generateSortComparator):
39 (WI.NetworkTableContentView.prototype._processPendingEntries):
40 (WI.NetworkTableContentView.prototype._updateEntryForResource.updateEntry): Added.
41 (WI.NetworkTableContentView.prototype._updateEntryForResource):
42 (WI.NetworkTableContentView.prototype._insertResourceAndReloadTable):
43 (WI.NetworkTableContentView.prototype._entryForDOMNode): Added.
44 (WI.NetworkTableContentView.prototype._tryLinkResourceToDOMNode): Added.
45 (WI.NetworkTableContentView.prototype._uniqueValuesForDOMNodeEntry): Added.
46 (WI.NetworkTableContentView.prototype._updateFilteredEntries):
47 (WI.NetworkTableContentView.prototype._handleGroupByDOMNodeCheckedDidChange): Added.
48 * UserInterface/Views/NetworkTableContentView.css:
49 (.network-table .cell.dom-node.name .icon): Added.
50 (.network-table .cell.dom-node.name .disclosure): Added.
51 (body[dir=rtl] .network-table .cell.dom-node.name .disclosure): Added.
52 (.network-table:focus li.selected .cell.dom-node.name .disclosure): Added.
53 (.network-table .cell.dom-node.name .disclosure.expanded): Added.
54 (.network-table:focus li.selected .cell.node.name .disclosure.expanded): Added.
55 (.network-table .cell.grouped-by-node.name): Added.
56 (body[dir=ltr] .network-table .cell.grouped-by-node.name): Added.
57 (body[dir=rtl] .network-table .cell.grouped-by-node.name): Added.
58 (.network-table li:not(.selected) .cell:matches(.cache-type, .multiple)): Added.
59 (.network-table li.selected .cell.domain > .lock): Added.
60 (.network-table .cache-type): Deleted.
61 When two resources are added that share the same `initiatorNode`, insert a node entry into
62 the `WI.Table` before the first resource entry for that node (based on the current sort).
63 This node entry is added after the resource entries are filtered, so they won't appear in
64 the default entries list.
65
66 * UserInterface/Models/Resource.js:
67 (WI.Resource):
68 * UserInterface/Models/SourceMapResource.js:
69 (WI.SourceMapResource):
70 * UserInterface/Models/WebSocketResource.js:
71 (WI.WebSocketResource):
72 * UserInterface/Controllers/FrameResourceManager.js:
73 (WI.FrameResourceManager.prototype.frameDidNavigate):
74 (WI.FrameResourceManager.prototype.resourceRequestWillBeSent):
75 (WI.FrameResourceManager.prototype.webSocketWillSendHandshakeRequest):
76 (WI.FrameResourceManager.prototype.resourceRequestWasServedFromMemoryCache):
77 (WI.FrameResourceManager.prototype.resourceRequestDidReceiveResponse):
78 (WI.FrameResourceManager.prototype._addNewResourceToFrameOrTarget.createResourceFromArguments): Added.
79 (WI.FrameResourceManager.prototype._addNewResourceToFrameOrTarget):
80 (WI.FrameResourceManager.prototype._initiatorNodeFromPayload):
81 (WI.FrameResourceManager.prototype._createFrame):
82 (WI.FrameResourceManager.prototype._createResource):
83 Use an object to pass all optional parameters when creating `WI.Resource`.
84
85 * UserInterface/Images/Range.svg: Added.
86 * UserInterface/Views/ResourceIcons.css:
87 (.resource-icon.resource-type-range .icon): Added.
88