| 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 * @implements {Network.NetworkColumnExtensionInterface} | |
| 6 * @implements {Network.NetworkGroupLookupInterface} | |
| 7 */ | |
| 8 NetworkGroupLookup.NetworkProductGroupLookup = class { | |
| 9 /** | |
| 10 * @override | |
| 11 * @param {!SDK.NetworkRequest} request | |
| 12 * @return {?*} | |
| 13 */ | |
| 14 groupForRequest(request) { | |
| 15 var productName = ProductRegistry.nameForUrl(request.parsedURL); | |
| 16 if (!productName) | |
| 17 return null; | |
| 18 return productName; | |
| 19 } | |
| 20 | |
| 21 /** | |
| 22 * @override | |
| 23 * @param {!*} key | |
| 24 * @return {string} | |
| 25 */ | |
| 26 groupName(key) { | |
| 27 return /** @type {string} */ (key); | |
| 28 } | |
| 29 | |
| 30 /** | |
| 31 * @override | |
| 32 * @param {!SDK.NetworkRequest} request | |
| 33 * @return {string} | |
| 34 */ | |
| 35 lookupColumnValue(request) { | |
| 36 return ProductRegistry.nameForUrl(request.parsedURL) || ''; | |
| 37 } | |
| 38 | |
| 39 /** | |
| 40 * @override | |
| 41 * @param {!SDK.NetworkRequest} aRequest | |
| 42 * @param {!SDK.NetworkRequest} bRequest | |
| 43 * @return {number} | |
| 44 */ | |
| 45 requestComparator(aRequest, bRequest) { | |
| 46 var aValue = this.lookupColumnValue(aRequest); | |
| 47 var bValue = this.lookupColumnValue(bRequest); | |
| 48 if (aValue === bValue) | |
| 49 return aRequest.indentityCompare(bRequest); | |
| 50 return aValue > bValue ? 1 : -1; | |
| 51 } | |
| 52 }; | |
| 53 | |
| 54 /** | |
| 55 * @implements {Network.NetworkGroupLookupInterface} | |
| 56 */ | |
| 57 NetworkGroupLookup.NetworkProductFrameGroupLookup = class { | |
| 58 /** | |
| 59 * @override | |
| 60 * @param {!SDK.NetworkRequest} request | |
| 61 * @return {?*} | |
| 62 */ | |
| 63 groupForRequest(request) { | |
| 64 var resourceTreeModel = request.networkManager().target().model(SDK.Resource
TreeModel); | |
| 65 if (!resourceTreeModel) | |
| 66 return null; | |
| 67 var frame = resourceTreeModel.frameForId(request.frameId); | |
| 68 if (!frame || frame.isMainFrame()) | |
| 69 return null; | |
| 70 return frame; | |
| 71 } | |
| 72 | |
| 73 /** | |
| 74 * @override | |
| 75 * @param {!*} frameArg | |
| 76 * @return {string} | |
| 77 */ | |
| 78 groupName(frameArg) { | |
| 79 var frame = /** @type {!SDK.ResourceTreeFrame} */ (frameArg); | |
| 80 var name; | |
| 81 var frameParsedURL = new Common.ParsedURL(frame.url); | |
| 82 if (frame.url) | |
| 83 name = ProductRegistry.nameForUrl(frameParsedURL); | |
| 84 if (name) | |
| 85 return name; | |
| 86 // We are not caching the frame url result because it may change. | |
| 87 var symbol = NetworkGroupLookup.NetworkProductFrameGroupLookup._productFrame
GroupNameSymbol; | |
| 88 if (frame[symbol]) | |
| 89 return frame[symbol]; | |
| 90 frame[symbol] = this._lookupFrameStacktraceName(frame) || frameParsedURL.hos
t || frame.name || '<iframe>'; | |
| 91 return frame[symbol]; | |
| 92 } | |
| 93 | |
| 94 /** | |
| 95 * @param {!SDK.ResourceTreeFrame} frame | |
| 96 * @return {?string} | |
| 97 */ | |
| 98 _lookupFrameStacktraceName(frame) { | |
| 99 // TODO(allada) This probably belongs in another shared module with some loo
kup that console will use for execution | |
| 100 // context name lookup. | |
| 101 var stackTrace = frame.creationStackTrace(); | |
| 102 var name; | |
| 103 while (stackTrace) { | |
| 104 for (var stack of stackTrace.callFrames) { | |
| 105 if (stack.url) | |
| 106 name = ProductRegistry.nameForUrl(new Common.ParsedURL(stack.url)); | |
| 107 if (name) | |
| 108 return name; | |
| 109 } | |
| 110 stackTrace = frame.parent; | |
| 111 } | |
| 112 return null; | |
| 113 } | |
| 114 }; | |
| 115 | |
| 116 /** | |
| 117 * @implements {Network.NetworkRowDecorator} | |
| 118 */ | |
| 119 NetworkGroupLookup.NetworkProductTypeGroupLookup = class { | |
| 120 /** | |
| 121 * @override | |
| 122 * @param {!Network.NetworkNode} node | |
| 123 */ | |
| 124 decorate(node) { | |
| 125 var request = node.request(); | |
| 126 var element = node.existingElement(); | |
| 127 if (!request || !element) | |
| 128 return; | |
| 129 var typeName = ProductRegistry.typeForUrl(request.parsedURL); | |
| 130 if (typeName === null) | |
| 131 return; | |
| 132 var icon = UI.Icon.create('smallicon-network-product'); | |
| 133 var color; | |
| 134 if (typeName === 1) { | |
| 135 color = Common.Color.fromRGBA([255, 252, 225, .6]); | |
| 136 icon.style.filter = 'hue-rotate(220deg) brightness(1.5)'; | |
| 137 } else if (typeName === 2) { | |
| 138 color = Common.Color.fromRGBA([211, 253, 211, .6]); | |
| 139 icon.style.filter = 'hue-rotate(-90deg) brightness(1.5)'; | |
| 140 } else { | |
| 141 color = Common.Color.fromRGBA([224, 247, 250, .6]); | |
| 142 } | |
| 143 node.setIconForColumn('product-extension', icon); | |
| 144 node.setBackgroundColor(color); | |
| 145 } | |
| 146 }; | |
| 147 | |
| 148 NetworkGroupLookup.NetworkProductFrameGroupLookup._productFrameGroupNameSymbol =
Symbol('ProductFrameGroupName'); | |
| OLD | NEW |