OLD | NEW |
---|---|
(Empty) | |
1 // Copyright 2017 The Chromium Authors. All rights reserved. | |
2 // Use of this source code is governed by a BSD-style license that can be | |
3 // found in the LICENSE file. | |
4 | |
5 /** | |
6 * @implements {Network.GroupLookupInterface} | |
7 */ | |
8 Network.FrameGrouper = class { | |
9 /** | |
10 * @param {!Network.NetworkLogView} parentView | |
11 */ | |
12 constructor(parentView) { | |
13 this._parentView = parentView; | |
14 /** @type {?ProductRegistry.Registry} */ | |
15 this._productRegistry = null; | |
16 /** @type {!Map<!SDK.ResourceTreeFrame, !Network.FrameGroupNode>} */ | |
17 this._activeGroups = new Map(); | |
18 } | |
19 | |
20 /** | |
21 * @override | |
22 * @return {!Promise} | |
23 */ | |
24 initialize() { | |
25 return ProductRegistry.instance().then(productRegistry => { | |
26 this._productRegistry = productRegistry; | |
27 this._activeGroups.forEach(node => node.refresh()); | |
28 }); | |
29 } | |
30 | |
31 /** | |
32 * @override | |
33 * @param {!SDK.NetworkRequest} request | |
34 * @return {?Network.NetworkGroupNode} | |
35 */ | |
36 groupNodeForRequest(request) { | |
37 var frame = request.resourceTreeFrame(); | |
38 if (!frame || frame.isMainFrame()) | |
39 return null; | |
40 var groupNode = this._activeGroups.get(frame); | |
41 if (groupNode) | |
42 return groupNode; | |
43 groupNode = new Network.FrameGroupNode(this._parentView, frame, this); | |
44 this._activeGroups.set(frame, groupNode); | |
45 return groupNode; | |
46 } | |
47 | |
48 /** | |
49 * @override | |
50 */ | |
51 reset() { | |
52 this._activeGroups.clear(); | |
53 } | |
54 }; | |
55 | |
56 Network.FrameGroupNode = class extends Network.NetworkGroupNode { | |
57 /** | |
58 * @param {!Network.NetworkLogView} parentView | |
59 * @param {!SDK.ResourceTreeFrame} frame | |
60 * @param {!Network.FrameGrouper} grouper | |
61 */ | |
62 constructor(parentView, frame, grouper) { | |
63 super(parentView); | |
64 this._frame = frame; | |
65 this._grouper = grouper; | |
66 /** @type {?ProductRegistry.Registry.ProductEntry|undefined} */ | |
67 this._productEntryCache; | |
68 } | |
69 | |
70 /** | |
71 * @override | |
72 * @return {boolean} | |
73 */ | |
74 isFromFrame() { | |
75 return true; | |
76 } | |
77 | |
78 /** | |
79 * @override | |
80 */ | |
81 displayName() { | |
82 var entry = this._getEntry(); | |
83 return entry ? entry.name : (new Common.ParsedURL(this._frame.url)).host || this._frame.name || '<iframe>'; | |
84 } | |
85 | |
86 /** | |
87 * @override | |
88 * @param {!Element} cell | |
89 * @param {string} columnId | |
90 */ | |
91 renderCell(cell, columnId) { | |
92 super.renderCell(cell, columnId); | |
93 if (columnId === 'name') { | |
94 var name = this.displayName(); | |
95 cell.textContent = name; | |
96 cell.title = name; | |
97 } | |
98 if (columnId === 'product') { | |
99 var entry = this._getEntry(); | |
100 if (!entry) | |
101 return; | |
102 cell.textContent = entry.name; | |
103 cell.title = entry.name; | |
104 } | |
105 } | |
106 | |
107 /** | |
108 * @return {?ProductRegistry.Registry.ProductEntry} | |
109 */ | |
110 _getEntry() { | |
pfeldman
2017/05/04 22:54:08
_entry
allada
2017/05/05 00:43:13
Done.
| |
111 if (this._productEntryCache !== undefined) | |
112 return this._productEntryCache; | |
113 var productRegistry = this._grouper._productRegistry; | |
114 if (!productRegistry) | |
115 return null; | |
116 this._productEntryCache = productRegistry.entryForFrame(this._frame); | |
117 return this._productEntryCache; | |
118 } | |
119 }; | |
OLD | NEW |