| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 /** | 5 /** |
| 6 * @constructor | 6 * @constructor |
| 7 * @extends {WebInspector.VBox} | 7 * @extends {WebInspector.VBox} |
| 8 * @param {!WebInspector.TimelineModel} model | 8 * @param {!WebInspector.TimelineModel} model |
| 9 */ | 9 */ |
| 10 WebInspector.TimelineTreeView = function(model) | 10 WebInspector.TimelineTreeView = function(model) |
| (...skipping 165 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 176 /** | 176 /** |
| 177 * @param {!WebInspector.TimelineModel.ProfileTreeNode} node | 177 * @param {!WebInspector.TimelineModel.ProfileTreeNode} node |
| 178 * @return {string} | 178 * @return {string} |
| 179 */ | 179 */ |
| 180 function groupByURL(node) | 180 function groupByURL(node) |
| 181 { | 181 { |
| 182 return WebInspector.TimelineTreeView.eventURL(node.event) || ""; | 182 return WebInspector.TimelineTreeView.eventURL(node.event) || ""; |
| 183 } | 183 } |
| 184 | 184 |
| 185 /** | 185 /** |
| 186 * @param {boolean} groupSubdomains |
| 186 * @param {!WebInspector.TimelineModel.ProfileTreeNode} node | 187 * @param {!WebInspector.TimelineModel.ProfileTreeNode} node |
| 187 * @return {string} | 188 * @return {string} |
| 188 */ | 189 */ |
| 189 function groupByDomain(node) | 190 function groupByDomain(groupSubdomains, node) |
| 190 { | |
| 191 var parsedURL = (WebInspector.TimelineTreeView.eventURL(node.event)
|| "").asParsedURL(); | |
| 192 return parsedURL && parsedURL.host || ""; | |
| 193 } | |
| 194 | |
| 195 /** | |
| 196 * @param {!WebInspector.TimelineModel.ProfileTreeNode} node | |
| 197 * @return {string} | |
| 198 */ | |
| 199 function groupByDomainSecondLevel(node) | |
| 200 { | 191 { |
| 201 var parsedURL = (WebInspector.TimelineTreeView.eventURL(node.event)
|| "").asParsedURL(); | 192 var parsedURL = (WebInspector.TimelineTreeView.eventURL(node.event)
|| "").asParsedURL(); |
| 202 if (!parsedURL) | 193 if (!parsedURL) |
| 203 return ""; | 194 return ""; |
| 195 if (parsedURL.scheme === "chrome-extension") { |
| 196 var url = parsedURL.scheme + "://" + parsedURL.host; |
| 197 var displayName = executionContextNamesByOrigin.get(url); |
| 198 return displayName ? WebInspector.UIString("Chrome Extension: %s
", displayName) : url; |
| 199 } |
| 200 if (!groupSubdomains) |
| 201 return parsedURL.host; |
| 204 if (/^[.0-9]+$/.test(parsedURL.host)) | 202 if (/^[.0-9]+$/.test(parsedURL.host)) |
| 205 return parsedURL.host; | 203 return parsedURL.host; |
| 206 var domainMatch = /([^.]*\.)?[^.]*$/.exec(parsedURL.host); | 204 var domainMatch = /([^.]*\.)?[^.]*$/.exec(parsedURL.host); |
| 207 return domainMatch && domainMatch[0] || ""; | 205 return domainMatch && domainMatch[0] || ""; |
| 208 } | 206 } |
| 209 | 207 |
| 208 var executionContextNamesByOrigin = new Map(); |
| 209 var mainTarget = WebInspector.targetManager.mainTarget(); |
| 210 if (mainTarget) { |
| 211 for (var context of mainTarget.runtimeModel.executionContexts()) |
| 212 executionContextNamesByOrigin.set(context.origin, context.name); |
| 213 } |
| 210 var groupByMap = /** @type {!Map<!WebInspector.TimelineTreeView.GroupBy,
?function(!WebInspector.TimelineModel.ProfileTreeNode):string>} */ (new Map([ | 214 var groupByMap = /** @type {!Map<!WebInspector.TimelineTreeView.GroupBy,
?function(!WebInspector.TimelineModel.ProfileTreeNode):string>} */ (new Map([ |
| 211 [WebInspector.TimelineTreeView.GroupBy.None, null], | 215 [WebInspector.TimelineTreeView.GroupBy.None, null], |
| 212 [WebInspector.TimelineTreeView.GroupBy.Domain, groupByDomain], | 216 [WebInspector.TimelineTreeView.GroupBy.Domain, groupByDomain.bind(nu
ll, false)], |
| 213 [WebInspector.TimelineTreeView.GroupBy.DomainSecondLevel, groupByDom
ainSecondLevel], | 217 [WebInspector.TimelineTreeView.GroupBy.DomainSecondLevel, groupByDom
ain.bind(null, true)], |
| 214 [WebInspector.TimelineTreeView.GroupBy.URL, groupByURL] | 218 [WebInspector.TimelineTreeView.GroupBy.URL, groupByURL] |
| 215 ])); | 219 ])); |
| 216 return groupByMap.get(this._groupBySetting.get()) || null; | 220 return groupByMap.get(this._groupBySetting.get()) || null; |
| 217 }, | 221 }, |
| 218 | 222 |
| 219 /** | 223 /** |
| 220 * @param {function(!WebInspector.TimelineModel.ProfileTreeNode):string} nod
eToGroupId | 224 * @param {function(!WebInspector.TimelineModel.ProfileTreeNode):string} nod
eToGroupId |
| 221 * @param {!WebInspector.TimelineModel.ProfileTreeNode} node | 225 * @param {!WebInspector.TimelineModel.ProfileTreeNode} node |
| 222 * @return {!WebInspector.TimelineModel.ProfileTreeNode} | 226 * @return {!WebInspector.TimelineModel.ProfileTreeNode} |
| 223 */ | 227 */ |
| (...skipping 186 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 410 if (!this._profileNode.children) | 414 if (!this._profileNode.children) |
| 411 return; | 415 return; |
| 412 for (var node of this._profileNode.children.values()) { | 416 for (var node of this._profileNode.children.values()) { |
| 413 var gridNode = new WebInspector.TimelineTreeView.GridNode(node, this
._totalTime, this._maxTimes.self, this._maxTimes.total); | 417 var gridNode = new WebInspector.TimelineTreeView.GridNode(node, this
._totalTime, this._maxTimes.self, this._maxTimes.total); |
| 414 this.insertChildOrdered(gridNode); | 418 this.insertChildOrdered(gridNode); |
| 415 } | 419 } |
| 416 }, | 420 }, |
| 417 | 421 |
| 418 __proto__: WebInspector.SortableDataGridNode.prototype | 422 __proto__: WebInspector.SortableDataGridNode.prototype |
| 419 } | 423 } |
| OLD | NEW |