OLD | NEW |
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 29 matching lines...) Expand all Loading... |
40 this._dataGrid = new WebInspector.SortableDataGrid(columns, undefined, undef
ined, undefined, this._onContextMenu.bind(this)); | 40 this._dataGrid = new WebInspector.SortableDataGrid(columns, undefined, undef
ined, undefined, this._onContextMenu.bind(this)); |
41 this._dataGrid.setStickToBottom(true); | 41 this._dataGrid.setStickToBottom(true); |
42 this._dataGrid.setCellClass("websocket-frame-view-td"); | 42 this._dataGrid.setCellClass("websocket-frame-view-td"); |
43 this._timeComparator = /** @type {!WebInspector.SortableDataGrid.NodeCompara
tor} */ (WebInspector.ResourceWebSocketFrameNodeTimeComparator); | 43 this._timeComparator = /** @type {!WebInspector.SortableDataGrid.NodeCompara
tor} */ (WebInspector.ResourceWebSocketFrameNodeTimeComparator); |
44 this._dataGrid.sortNodes(this._timeComparator, false); | 44 this._dataGrid.sortNodes(this._timeComparator, false); |
45 this._dataGrid.markColumnAsSortedBy("time", WebInspector.DataGrid.Order.Asce
nding); | 45 this._dataGrid.markColumnAsSortedBy("time", WebInspector.DataGrid.Order.Asce
nding); |
46 this._dataGrid.addEventListener(WebInspector.DataGrid.Events.SortingChanged,
this._sortItems, this); | 46 this._dataGrid.addEventListener(WebInspector.DataGrid.Events.SortingChanged,
this._sortItems, this); |
47 | 47 |
48 this._dataGrid.setName("ResourceWebSocketFrameView"); | 48 this._dataGrid.setName("ResourceWebSocketFrameView"); |
49 this._dataGrid.addEventListener(WebInspector.DataGrid.Events.SelectedNode, t
his._onFrameSelected, this); | 49 this._dataGrid.addEventListener(WebInspector.DataGrid.Events.SelectedNode, t
his._onFrameSelected, this); |
| 50 this._dataGrid.addEventListener(WebInspector.DataGrid.Events.DeselectedNode,
this._onFrameDeselected, this); |
50 this._splitWidget.setMainWidget(this._dataGrid.asWidget()); | 51 this._splitWidget.setMainWidget(this._dataGrid.asWidget()); |
51 | 52 |
52 var view = new WebInspector.EmptyWidget("Select frame to browse its content.
"); | 53 var view = new WebInspector.EmptyWidget("Select frame to browse its content.
"); |
53 this._splitWidget.setSidebarWidget(view); | 54 this._splitWidget.setSidebarWidget(view); |
| 55 |
| 56 /** @type {?WebInspector.ResourceWebSocketFrameNode} */ |
| 57 this._selectedNode = null; |
54 } | 58 } |
55 | 59 |
56 /** @enum {number} */ | 60 /** @enum {number} */ |
57 WebInspector.ResourceWebSocketFrameView.OpCodes = { | 61 WebInspector.ResourceWebSocketFrameView.OpCodes = { |
58 ContinuationFrame: 0, | 62 ContinuationFrame: 0, |
59 TextFrame: 1, | 63 TextFrame: 1, |
60 BinaryFrame: 2, | 64 BinaryFrame: 2, |
61 ConnectionCloseFrame: 8, | 65 ConnectionCloseFrame: 8, |
62 PingFrame: 9, | 66 PingFrame: 9, |
63 PongFrame: 10 | 67 PongFrame: 10 |
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
109 var frame = /** @type {!WebInspector.NetworkRequest.WebSocketFrame} */ (
event.data); | 113 var frame = /** @type {!WebInspector.NetworkRequest.WebSocketFrame} */ (
event.data); |
110 this._dataGrid.insertChild(new WebInspector.ResourceWebSocketFrameNode(f
rame)); | 114 this._dataGrid.insertChild(new WebInspector.ResourceWebSocketFrameNode(f
rame)); |
111 }, | 115 }, |
112 | 116 |
113 /** | 117 /** |
114 * @param {!WebInspector.Event} event | 118 * @param {!WebInspector.Event} event |
115 */ | 119 */ |
116 _onFrameSelected: function(event) | 120 _onFrameSelected: function(event) |
117 { | 121 { |
118 var selectedNode = /** @type {!WebInspector.ResourceWebSocketFrameNode}
*/ (event.target.selectedNode); | 122 var selectedNode = /** @type {!WebInspector.ResourceWebSocketFrameNode}
*/ (event.target.selectedNode); |
| 123 this._currentSelectedNode = selectedNode; |
119 var contentProvider = selectedNode.contentProvider(); | 124 var contentProvider = selectedNode.contentProvider(); |
120 contentProvider.requestContent().then(content => { | 125 contentProvider.requestContent().then(contentHandler.bind(this)); |
121 var parsedJSON = content ? WebInspector.JSONView.parseJSON(content)
: null; | 126 |
122 var view = parsedJSON ? new WebInspector.JSONView(parsedJSON) : new
WebInspector.ResourceSourceFrame(contentProvider); | 127 /** |
123 this._splitWidget.setSidebarWidget(view); | 128 * @param {(string|null)} content |
124 }); | 129 * @this {WebInspector.ResourceWebSocketFrameView} |
| 130 */ |
| 131 function contentHandler(content) { |
| 132 if (this._currentSelectedNode !== selectedNode) |
| 133 return; |
| 134 WebInspector.JSONView.parseJSON(content).then(handleJSONData.bind(th
is)); |
| 135 } |
| 136 |
| 137 /** |
| 138 * @param {?WebInspector.ParsedJSON} parsedJSON |
| 139 * @this {WebInspector.ResourceWebSocketFrameView} |
| 140 */ |
| 141 function handleJSONData(parsedJSON) |
| 142 { |
| 143 if (this._currentSelectedNode !== selectedNode) |
| 144 return; |
| 145 if (parsedJSON) |
| 146 this._splitWidget.setSidebarWidget(new WebInspector.JSONView(par
sedJSON)); |
| 147 else |
| 148 this._splitWidget.setSidebarWidget(new WebInspector.ResourceSour
ceFrame(contentProvider)); |
| 149 } |
| 150 }, |
| 151 |
| 152 /** |
| 153 * @param {!WebInspector.Event} event |
| 154 */ |
| 155 _onFrameDeselected: function(event) |
| 156 { |
| 157 this._currentSelectedNode = null; |
125 }, | 158 }, |
126 | 159 |
127 refresh: function() | 160 refresh: function() |
128 { | 161 { |
129 this._dataGrid.rootNode().removeChildren(); | 162 this._dataGrid.rootNode().removeChildren(); |
130 var frames = this._request.frames(); | 163 var frames = this._request.frames(); |
131 for (var i = 0; i < frames.length; ++i) | 164 for (var i = 0; i < frames.length; ++i) |
132 this._dataGrid.insertChild(new WebInspector.ResourceWebSocketFrameNo
de(frames[i])); | 165 this._dataGrid.insertChild(new WebInspector.ResourceWebSocketFrameNo
de(frames[i])); |
133 }, | 166 }, |
134 | 167 |
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
215 | 248 |
216 /** | 249 /** |
217 * @param {!WebInspector.ResourceWebSocketFrameNode} a | 250 * @param {!WebInspector.ResourceWebSocketFrameNode} a |
218 * @param {!WebInspector.ResourceWebSocketFrameNode} b | 251 * @param {!WebInspector.ResourceWebSocketFrameNode} b |
219 * @return {number} | 252 * @return {number} |
220 */ | 253 */ |
221 WebInspector.ResourceWebSocketFrameNodeTimeComparator = function(a, b) | 254 WebInspector.ResourceWebSocketFrameNodeTimeComparator = function(a, b) |
222 { | 255 { |
223 return a._frame.time - b._frame.time; | 256 return a._frame.time - b._frame.time; |
224 } | 257 } |
OLD | NEW |