Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(4)

Side by Side Diff: Source/devtools/front_end/network/ResourceWebSocketFrameView.js

Issue 643873003: DevTools: NetworkPanel: make websocket frames table "live". (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 6 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | Source/devtools/front_end/sdk/NetworkRequest.js » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2012 Research In Motion Limited. All rights reserved. 2 * Copyright (C) 2012 Research In Motion Limited. All rights reserved.
3 * 3 *
4 * This library is free software; you can redistribute it and/or 4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public 5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either 6 * License as published by the Free Software Foundation; either
7 * version 2 of the License, or (at your option) any later version. 7 * version 2 of the License, or (at your option) any later version.
8 * 8 *
9 * This library is distributed in the hope that it will be useful, 9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
(...skipping 13 matching lines...) Expand all
24 WebInspector.ResourceWebSocketFrameView = function(request) 24 WebInspector.ResourceWebSocketFrameView = function(request)
25 { 25 {
26 WebInspector.VBox.call(this); 26 WebInspector.VBox.call(this);
27 this.registerRequiredCSS("webSocketFrameView.css"); 27 this.registerRequiredCSS("webSocketFrameView.css");
28 this.element.classList.add("websocket-frame-view"); 28 this.element.classList.add("websocket-frame-view");
29 this._request = request; 29 this._request = request;
30 30
31 var columns = [ 31 var columns = [
32 {id: "data", title: WebInspector.UIString("Data"), sortable: false, weig ht: 88, longText: true}, 32 {id: "data", title: WebInspector.UIString("Data"), sortable: false, weig ht: 88, longText: true},
33 {id: "length", title: WebInspector.UIString("Length"), sortable: false, align: WebInspector.DataGrid.Align.Right, weight: 5}, 33 {id: "length", title: WebInspector.UIString("Length"), sortable: false, align: WebInspector.DataGrid.Align.Right, weight: 5},
34 {id: "time", title: WebInspector.UIString("Time"), weight: 7} 34 {id: "time", title: WebInspector.UIString("Time"), sortable: true, weigh t: 7}
35 ] 35 ]
36 36
37 this._dataGrid = new WebInspector.SortableDataGrid(columns, undefined, undef ined, undefined, this._onContextMenu.bind(this)); 37 this._dataGrid = new WebInspector.SortableDataGrid(columns, undefined, undef ined, undefined, this._onContextMenu.bind(this));
38 this._dataGrid.setStickToBottom(true);
38 this._dataGrid.setCellClass("websocket-frame-view-td"); 39 this._dataGrid.setCellClass("websocket-frame-view-td");
39 var comparator = /** @type {!WebInspector.SortableDataGrid.NodeComparator} * / (WebInspector.ResourceWebSocketFrameNodeTimeComparator); 40 this._timeComparator = /** @type {!WebInspector.SortableDataGrid.NodeCompara tor} */ (WebInspector.ResourceWebSocketFrameNodeTimeComparator);
40 this._dataGrid.sortNodes(comparator, true); 41 this._dataGrid.sortNodes(this._timeComparator, false);
42 this._dataGrid.markColumnAsSortedBy("time", WebInspector.DataGrid.Order.Asce nding);
43 this._dataGrid.addEventListener(WebInspector.DataGrid.Events.SortingChanged, this._sortItems, this);
41 44
42 this.refresh();
43 this._dataGrid.setName("ResourceWebSocketFrameView"); 45 this._dataGrid.setName("ResourceWebSocketFrameView");
44 this._dataGrid.show(this.element); 46 this._dataGrid.show(this.element);
45 } 47 }
46 48
47 /** @enum {number} */ 49 /** @enum {number} */
48 WebInspector.ResourceWebSocketFrameView.OpCodes = { 50 WebInspector.ResourceWebSocketFrameView.OpCodes = {
49 ContinuationFrame: 0, 51 ContinuationFrame: 0,
50 TextFrame: 1, 52 TextFrame: 1,
51 BinaryFrame: 2, 53 BinaryFrame: 2,
52 ConnectionCloseFrame: 8, 54 ConnectionCloseFrame: 8,
(...skipping 21 matching lines...) Expand all
74 * @return {string} 76 * @return {string}
75 */ 77 */
76 WebInspector.ResourceWebSocketFrameView.opCodeDescription = function(opCode, mas k) 78 WebInspector.ResourceWebSocketFrameView.opCodeDescription = function(opCode, mas k)
77 { 79 {
78 var rawDescription = WebInspector.ResourceWebSocketFrameView.opCodeDescripti ons[opCode] || ""; 80 var rawDescription = WebInspector.ResourceWebSocketFrameView.opCodeDescripti ons[opCode] || "";
79 var localizedDescription = WebInspector.UIString(rawDescription); 81 var localizedDescription = WebInspector.UIString(rawDescription);
80 return WebInspector.UIString("%s (Opcode %d%s)", localizedDescription, opCod e, (mask ? ", mask" : "")); 82 return WebInspector.UIString("%s (Opcode %d%s)", localizedDescription, opCod e, (mask ? ", mask" : ""));
81 } 83 }
82 84
83 WebInspector.ResourceWebSocketFrameView.prototype = { 85 WebInspector.ResourceWebSocketFrameView.prototype = {
86 wasShown: function()
87 {
88 this.refresh();
89 this._request.addEventListener(WebInspector.NetworkRequest.Events.Websoc ketFrameAdded, this._frameAdded, this);
90 },
91
92 willHide: function()
93 {
94 this._request.removeEventListener(WebInspector.NetworkRequest.Events.Web socketFrameAdded, this._frameAdded, this);
95 },
96
97 /**
98 * @param {!WebInspector.Event} event
99 */
100 _frameAdded: function(event)
101 {
102 var frame = /** @type {!WebInspector.NetworkRequest.WebSocketFrame} */ ( event.data);
103 this._dataGrid.insertChild(new WebInspector.ResourceWebSocketFrameNode(f rame));
104 },
105
84 refresh: function() 106 refresh: function()
85 { 107 {
86 this._dataGrid.rootNode().removeChildren(); 108 this._dataGrid.rootNode().removeChildren();
87 var frames = this._request.frames(); 109 var frames = this._request.frames();
88 for (var i = frames.length - 1; i >= 0; --i) 110 for (var i = 0; i < frames.length; ++i)
89 this._dataGrid.insertChild(new WebInspector.ResourceWebSocketFrameNo de(frames[i])); 111 this._dataGrid.insertChild(new WebInspector.ResourceWebSocketFrameNo de(frames[i]));
90 }, 112 },
91 113
92 show: function(parentElement, insertBefore)
93 {
94 this.refresh();
95 WebInspector.View.prototype.show.call(this, parentElement, insertBefore) ;
96 },
97
98 /** 114 /**
99 * @param {!WebInspector.ContextMenu} contextMenu 115 * @param {!WebInspector.ContextMenu} contextMenu
100 * @param {!WebInspector.DataGridNode} node 116 * @param {!WebInspector.DataGridNode} node
101 */ 117 */
102 _onContextMenu: function(contextMenu, node) 118 _onContextMenu: function(contextMenu, node)
103 { 119 {
104 contextMenu.appendItem(WebInspector.UIString(WebInspector.useLowerCaseMe nuTitles() ? "Copy message" : "Copy Message"), this._copyMessage.bind(this, node .data)); 120 contextMenu.appendItem(WebInspector.UIString(WebInspector.useLowerCaseMe nuTitles() ? "Copy message" : "Copy Message"), this._copyMessage.bind(this, node .data));
105 }, 121 },
106 122
107 /** 123 /**
108 * @param {!Object} row 124 * @param {!Object} row
109 */ 125 */
110 _copyMessage: function(row) 126 _copyMessage: function(row)
111 { 127 {
112 InspectorFrontendHost.copyText(row.data); 128 InspectorFrontendHost.copyText(row.data);
113 }, 129 },
114 130
131 _sortItems: function()
132 {
133 this._dataGrid.sortNodes(this._timeComparator, !this._dataGrid.isSortOrd erAscending());
134 },
135
115 __proto__: WebInspector.VBox.prototype 136 __proto__: WebInspector.VBox.prototype
116 } 137 }
117 138
118 /** 139 /**
119 * @constructor 140 * @constructor
120 * @extends {WebInspector.SortableDataGridNode} 141 * @extends {WebInspector.SortableDataGridNode}
121 * @param {!WebInspector.NetworkRequest.WebSocketFrame} frame 142 * @param {!WebInspector.NetworkRequest.WebSocketFrame} frame
122 */ 143 */
123 WebInspector.ResourceWebSocketFrameNode = function(frame) 144 WebInspector.ResourceWebSocketFrameNode = function(frame)
124 { 145 {
(...skipping 13 matching lines...) Expand all
138 /** override */ 159 /** override */
139 createCells: function() 160 createCells: function()
140 { 161 {
141 var element = this._element; 162 var element = this._element;
142 element.classList.toggle("websocket-frame-view-row-error", this._frame.t ype === WebInspector.NetworkRequest.WebSocketFrameType.Error); 163 element.classList.toggle("websocket-frame-view-row-error", this._frame.t ype === WebInspector.NetworkRequest.WebSocketFrameType.Error);
143 element.classList.toggle("websocket-frame-view-row-outcoming", this._fra me.type === WebInspector.NetworkRequest.WebSocketFrameType.Send); 164 element.classList.toggle("websocket-frame-view-row-outcoming", this._fra me.type === WebInspector.NetworkRequest.WebSocketFrameType.Send);
144 element.classList.toggle("websocket-frame-view-row-opcode", !this._isTex tFrame); 165 element.classList.toggle("websocket-frame-view-row-opcode", !this._isTex tFrame);
145 WebInspector.SortableDataGridNode.prototype.createCells.call(this); 166 WebInspector.SortableDataGridNode.prototype.createCells.call(this);
146 }, 167 },
147 168
169 /**
170 * @override
171 * @return {number}
172 */
173 nodeSelfHeight: function() {
vsevik 2014/10/16 08:03:32 { on the next line
eustas 2014/10/16 08:32:05 Done.
174 return 17;
175 },
176
148 __proto__: WebInspector.SortableDataGridNode.prototype 177 __proto__: WebInspector.SortableDataGridNode.prototype
149 } 178 }
150 179
151 /** 180 /**
152 * @param {!WebInspector.ResourceWebSocketFrameNode} a 181 * @param {!WebInspector.ResourceWebSocketFrameNode} a
153 * @param {!WebInspector.ResourceWebSocketFrameNode} b 182 * @param {!WebInspector.ResourceWebSocketFrameNode} b
154 * @return {number} 183 * @return {number}
155 */ 184 */
156 WebInspector.ResourceWebSocketFrameNodeTimeComparator = function(a, b) 185 WebInspector.ResourceWebSocketFrameNodeTimeComparator = function(a, b)
157 { 186 {
158 return a._frame.time - b._frame.time; 187 return a._frame.time - b._frame.time;
159 } 188 }
OLDNEW
« no previous file with comments | « no previous file | Source/devtools/front_end/sdk/NetworkRequest.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698