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

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

Issue 2493373002: DevTools: rename WebInspector into modules. (Closed)
Patch Set: for bots Created 4 years, 1 month 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
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
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details. 12 * Lesser General Public License for more details.
13 * 13 *
14 * You should have received a copy of the GNU Lesser General Public 14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software 15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 US A 16 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 US A
17 */ 17 */
18 18
19 /** 19 /**
20 * @unrestricted 20 * @unrestricted
21 */ 21 */
22 WebInspector.ResourceWebSocketFrameView = class extends WebInspector.VBox { 22 Network.ResourceWebSocketFrameView = class extends UI.VBox {
23 /** 23 /**
24 * @param {!WebInspector.NetworkRequest} request 24 * @param {!SDK.NetworkRequest} request
25 */ 25 */
26 constructor(request) { 26 constructor(request) {
27 super(); 27 super();
28 this.registerRequiredCSS('network/webSocketFrameView.css'); 28 this.registerRequiredCSS('network/webSocketFrameView.css');
29 this.element.classList.add('websocket-frame-view'); 29 this.element.classList.add('websocket-frame-view');
30 this._request = request; 30 this._request = request;
31 31
32 this._splitWidget = new WebInspector.SplitWidget(false, true, 'resourceWebSo cketFrameSplitViewState'); 32 this._splitWidget = new UI.SplitWidget(false, true, 'resourceWebSocketFrameS plitViewState');
33 this._splitWidget.show(this.element); 33 this._splitWidget.show(this.element);
34 34
35 var columns = /** @type {!Array<!WebInspector.DataGrid.ColumnDescriptor>} */ ([ 35 var columns = /** @type {!Array<!UI.DataGrid.ColumnDescriptor>} */ ([
36 {id: 'data', title: WebInspector.UIString('Data'), sortable: false, weight : 88}, { 36 {id: 'data', title: Common.UIString('Data'), sortable: false, weight: 88}, {
37 id: 'length', 37 id: 'length',
38 title: WebInspector.UIString('Length'), 38 title: Common.UIString('Length'),
39 sortable: false, 39 sortable: false,
40 align: WebInspector.DataGrid.Align.Right, 40 align: UI.DataGrid.Align.Right,
41 weight: 5 41 weight: 5
42 }, 42 },
43 {id: 'time', title: WebInspector.UIString('Time'), sortable: true, weight: 7} 43 {id: 'time', title: Common.UIString('Time'), sortable: true, weight: 7}
44 ]); 44 ]);
45 45
46 this._dataGrid = new WebInspector.SortableDataGrid(columns); 46 this._dataGrid = new UI.SortableDataGrid(columns);
47 this._dataGrid.setRowContextMenuCallback(onRowContextMenu); 47 this._dataGrid.setRowContextMenuCallback(onRowContextMenu);
48 this._dataGrid.setStickToBottom(true); 48 this._dataGrid.setStickToBottom(true);
49 this._dataGrid.setCellClass('websocket-frame-view-td'); 49 this._dataGrid.setCellClass('websocket-frame-view-td');
50 this._timeComparator = /** @type {!WebInspector.SortableDataGrid.NodeCompara tor} */ ( 50 this._timeComparator = /** @type {!UI.SortableDataGrid.NodeComparator} */ (
51 WebInspector.ResourceWebSocketFrameNodeTimeComparator); 51 Network.ResourceWebSocketFrameNodeTimeComparator);
52 this._dataGrid.sortNodes(this._timeComparator, false); 52 this._dataGrid.sortNodes(this._timeComparator, false);
53 this._dataGrid.markColumnAsSortedBy('time', WebInspector.DataGrid.Order.Asce nding); 53 this._dataGrid.markColumnAsSortedBy('time', UI.DataGrid.Order.Ascending);
54 this._dataGrid.addEventListener(WebInspector.DataGrid.Events.SortingChanged, this._sortItems, this); 54 this._dataGrid.addEventListener(UI.DataGrid.Events.SortingChanged, this._sor tItems, this);
55 55
56 this._dataGrid.setName('ResourceWebSocketFrameView'); 56 this._dataGrid.setName('ResourceWebSocketFrameView');
57 this._dataGrid.addEventListener(WebInspector.DataGrid.Events.SelectedNode, t his._onFrameSelected, this); 57 this._dataGrid.addEventListener(UI.DataGrid.Events.SelectedNode, this._onFra meSelected, this);
58 this._dataGrid.addEventListener(WebInspector.DataGrid.Events.DeselectedNode, this._onFrameDeselected, this); 58 this._dataGrid.addEventListener(UI.DataGrid.Events.DeselectedNode, this._onF rameDeselected, this);
59 this._splitWidget.setMainWidget(this._dataGrid.asWidget()); 59 this._splitWidget.setMainWidget(this._dataGrid.asWidget());
60 60
61 var view = new WebInspector.EmptyWidget('Select frame to browse its content. '); 61 var view = new UI.EmptyWidget('Select frame to browse its content.');
62 this._splitWidget.setSidebarWidget(view); 62 this._splitWidget.setSidebarWidget(view);
63 63
64 /** @type {?WebInspector.ResourceWebSocketFrameNode} */ 64 /** @type {?Network.ResourceWebSocketFrameNode} */
65 this._selectedNode = null; 65 this._selectedNode = null;
66 66
67 /** 67 /**
68 * @param {!WebInspector.ContextMenu} contextMenu 68 * @param {!UI.ContextMenu} contextMenu
69 * @param {!WebInspector.DataGridNode} node 69 * @param {!UI.DataGridNode} node
70 */ 70 */
71 function onRowContextMenu(contextMenu, node) { 71 function onRowContextMenu(contextMenu, node) {
72 contextMenu.appendItem( 72 contextMenu.appendItem(
73 WebInspector.UIString.capitalize('Copy ^message'), 73 Common.UIString.capitalize('Copy ^message'),
74 InspectorFrontendHost.copyText.bind(InspectorFrontendHost, node.data.d ata)); 74 InspectorFrontendHost.copyText.bind(InspectorFrontendHost, node.data.d ata));
75 } 75 }
76 } 76 }
77 77
78 /** 78 /**
79 * @param {number} opCode 79 * @param {number} opCode
80 * @param {boolean} mask 80 * @param {boolean} mask
81 * @return {string} 81 * @return {string}
82 */ 82 */
83 static opCodeDescription(opCode, mask) { 83 static opCodeDescription(opCode, mask) {
84 var rawDescription = WebInspector.ResourceWebSocketFrameView.opCodeDescripti ons[opCode] || ''; 84 var rawDescription = Network.ResourceWebSocketFrameView.opCodeDescriptions[o pCode] || '';
85 var localizedDescription = WebInspector.UIString(rawDescription); 85 var localizedDescription = Common.UIString(rawDescription);
86 return WebInspector.UIString('%s (Opcode %d%s)', localizedDescription, opCod e, (mask ? ', mask' : '')); 86 return Common.UIString('%s (Opcode %d%s)', localizedDescription, opCode, (ma sk ? ', mask' : ''));
87 } 87 }
88 88
89 /** 89 /**
90 * @override 90 * @override
91 */ 91 */
92 wasShown() { 92 wasShown() {
93 this.refresh(); 93 this.refresh();
94 this._request.addEventListener(WebInspector.NetworkRequest.Events.WebsocketF rameAdded, this._frameAdded, this); 94 this._request.addEventListener(SDK.NetworkRequest.Events.WebsocketFrameAdded , this._frameAdded, this);
95 } 95 }
96 96
97 /** 97 /**
98 * @override 98 * @override
99 */ 99 */
100 willHide() { 100 willHide() {
101 this._request.removeEventListener(WebInspector.NetworkRequest.Events.Websock etFrameAdded, this._frameAdded, this); 101 this._request.removeEventListener(SDK.NetworkRequest.Events.WebsocketFrameAd ded, this._frameAdded, this);
102 } 102 }
103 103
104 /** 104 /**
105 * @param {!WebInspector.Event} event 105 * @param {!Common.Event} event
106 */ 106 */
107 _frameAdded(event) { 107 _frameAdded(event) {
108 var frame = /** @type {!WebInspector.NetworkRequest.WebSocketFrame} */ (even t.data); 108 var frame = /** @type {!SDK.NetworkRequest.WebSocketFrame} */ (event.data);
109 this._dataGrid.insertChild(new WebInspector.ResourceWebSocketFrameNode(this. _request.url, frame)); 109 this._dataGrid.insertChild(new Network.ResourceWebSocketFrameNode(this._requ est.url, frame));
110 } 110 }
111 111
112 /** 112 /**
113 * @param {!WebInspector.Event} event 113 * @param {!Common.Event} event
114 */ 114 */
115 _onFrameSelected(event) { 115 _onFrameSelected(event) {
116 var selectedNode = /** @type {!WebInspector.ResourceWebSocketFrameNode} */ ( event.target.selectedNode); 116 var selectedNode = /** @type {!Network.ResourceWebSocketFrameNode} */ (event .target.selectedNode);
117 this._currentSelectedNode = selectedNode; 117 this._currentSelectedNode = selectedNode;
118 var contentProvider = selectedNode.contentProvider(); 118 var contentProvider = selectedNode.contentProvider();
119 contentProvider.requestContent().then(contentHandler.bind(this)); 119 contentProvider.requestContent().then(contentHandler.bind(this));
120 120
121 /** 121 /**
122 * @param {(string|null)} content 122 * @param {(string|null)} content
123 * @this {WebInspector.ResourceWebSocketFrameView} 123 * @this {Network.ResourceWebSocketFrameView}
124 */ 124 */
125 function contentHandler(content) { 125 function contentHandler(content) {
126 if (this._currentSelectedNode !== selectedNode) 126 if (this._currentSelectedNode !== selectedNode)
127 return; 127 return;
128 WebInspector.JSONView.parseJSON(content).then(handleJSONData.bind(this)); 128 Network.JSONView.parseJSON(content).then(handleJSONData.bind(this));
129 } 129 }
130 130
131 /** 131 /**
132 * @param {?WebInspector.ParsedJSON} parsedJSON 132 * @param {?Network.ParsedJSON} parsedJSON
133 * @this {WebInspector.ResourceWebSocketFrameView} 133 * @this {Network.ResourceWebSocketFrameView}
134 */ 134 */
135 function handleJSONData(parsedJSON) { 135 function handleJSONData(parsedJSON) {
136 if (this._currentSelectedNode !== selectedNode) 136 if (this._currentSelectedNode !== selectedNode)
137 return; 137 return;
138 if (parsedJSON) 138 if (parsedJSON)
139 this._splitWidget.setSidebarWidget(WebInspector.JSONView.createSearchabl eView(parsedJSON)); 139 this._splitWidget.setSidebarWidget(Network.JSONView.createSearchableView (parsedJSON));
140 else 140 else
141 this._splitWidget.setSidebarWidget(new WebInspector.ResourceSourceFrame( contentProvider)); 141 this._splitWidget.setSidebarWidget(new SourceFrame.ResourceSourceFrame(c ontentProvider));
142 } 142 }
143 } 143 }
144 144
145 /** 145 /**
146 * @param {!WebInspector.Event} event 146 * @param {!Common.Event} event
147 */ 147 */
148 _onFrameDeselected(event) { 148 _onFrameDeselected(event) {
149 this._currentSelectedNode = null; 149 this._currentSelectedNode = null;
150 } 150 }
151 151
152 refresh() { 152 refresh() {
153 this._dataGrid.rootNode().removeChildren(); 153 this._dataGrid.rootNode().removeChildren();
154 var frames = this._request.frames(); 154 var frames = this._request.frames();
155 for (var i = 0; i < frames.length; ++i) 155 for (var i = 0; i < frames.length; ++i)
156 this._dataGrid.insertChild(new WebInspector.ResourceWebSocketFrameNode(thi s._request.url, frames[i])); 156 this._dataGrid.insertChild(new Network.ResourceWebSocketFrameNode(this._re quest.url, frames[i]));
157 } 157 }
158 158
159 _sortItems() { 159 _sortItems() {
160 this._dataGrid.sortNodes(this._timeComparator, !this._dataGrid.isSortOrderAs cending()); 160 this._dataGrid.sortNodes(this._timeComparator, !this._dataGrid.isSortOrderAs cending());
161 } 161 }
162 }; 162 };
163 163
164 /** @enum {number} */ 164 /** @enum {number} */
165 WebInspector.ResourceWebSocketFrameView.OpCodes = { 165 Network.ResourceWebSocketFrameView.OpCodes = {
166 ContinuationFrame: 0, 166 ContinuationFrame: 0,
167 TextFrame: 1, 167 TextFrame: 1,
168 BinaryFrame: 2, 168 BinaryFrame: 2,
169 ConnectionCloseFrame: 8, 169 ConnectionCloseFrame: 8,
170 PingFrame: 9, 170 PingFrame: 9,
171 PongFrame: 10 171 PongFrame: 10
172 }; 172 };
173 173
174 /** @type {!Array.<string> } */ 174 /** @type {!Array.<string> } */
175 WebInspector.ResourceWebSocketFrameView.opCodeDescriptions = (function() { 175 Network.ResourceWebSocketFrameView.opCodeDescriptions = (function() {
176 var opCodes = WebInspector.ResourceWebSocketFrameView.OpCodes; 176 var opCodes = Network.ResourceWebSocketFrameView.OpCodes;
177 var map = []; 177 var map = [];
178 map[opCodes.ContinuationFrame] = 'Continuation Frame'; 178 map[opCodes.ContinuationFrame] = 'Continuation Frame';
179 map[opCodes.TextFrame] = 'Text Frame'; 179 map[opCodes.TextFrame] = 'Text Frame';
180 map[opCodes.BinaryFrame] = 'Binary Frame'; 180 map[opCodes.BinaryFrame] = 'Binary Frame';
181 map[opCodes.ContinuationFrame] = 'Connection Close Frame'; 181 map[opCodes.ContinuationFrame] = 'Connection Close Frame';
182 map[opCodes.PingFrame] = 'Ping Frame'; 182 map[opCodes.PingFrame] = 'Ping Frame';
183 map[opCodes.PongFrame] = 'Pong Frame'; 183 map[opCodes.PongFrame] = 'Pong Frame';
184 return map; 184 return map;
185 })(); 185 })();
186 186
187 187
188 /** 188 /**
189 * @unrestricted 189 * @unrestricted
190 */ 190 */
191 WebInspector.ResourceWebSocketFrameNode = class extends WebInspector.SortableDat aGridNode { 191 Network.ResourceWebSocketFrameNode = class extends UI.SortableDataGridNode {
192 /** 192 /**
193 * @param {string} url 193 * @param {string} url
194 * @param {!WebInspector.NetworkRequest.WebSocketFrame} frame 194 * @param {!SDK.NetworkRequest.WebSocketFrame} frame
195 */ 195 */
196 constructor(url, frame) { 196 constructor(url, frame) {
197 var dataText = frame.text; 197 var dataText = frame.text;
198 var length = frame.text.length; 198 var length = frame.text.length;
199 var time = new Date(frame.time * 1000); 199 var time = new Date(frame.time * 1000);
200 var timeText = ('0' + time.getHours()).substr(-2) + ':' + ('0' + time.getMin utes()).substr(-2) + ':' + 200 var timeText = ('0' + time.getHours()).substr(-2) + ':' + ('0' + time.getMin utes()).substr(-2) + ':' +
201 ('0' + time.getSeconds()).substr(-2) + '.' + ('00' + time.getMillisecond s()).substr(-3); 201 ('0' + time.getSeconds()).substr(-2) + '.' + ('00' + time.getMillisecond s()).substr(-3);
202 var timeNode = createElement('div'); 202 var timeNode = createElement('div');
203 timeNode.createTextChild(timeText); 203 timeNode.createTextChild(timeText);
204 timeNode.title = time.toLocaleString(); 204 timeNode.title = time.toLocaleString();
205 205
206 var isTextFrame = frame.opCode === WebInspector.ResourceWebSocketFrameView.O pCodes.TextFrame; 206 var isTextFrame = frame.opCode === Network.ResourceWebSocketFrameView.OpCode s.TextFrame;
207 if (!isTextFrame) 207 if (!isTextFrame)
208 dataText = WebInspector.ResourceWebSocketFrameView.opCodeDescription(frame .opCode, frame.mask); 208 dataText = Network.ResourceWebSocketFrameView.opCodeDescription(frame.opCo de, frame.mask);
209 209
210 super({data: dataText, length: length, time: timeNode}); 210 super({data: dataText, length: length, time: timeNode});
211 211
212 this._url = url; 212 this._url = url;
213 this._frame = frame; 213 this._frame = frame;
214 this._isTextFrame = isTextFrame; 214 this._isTextFrame = isTextFrame;
215 this._dataText = dataText; 215 this._dataText = dataText;
216 } 216 }
217 217
218 /** 218 /**
219 * @override 219 * @override
220 */ 220 */
221 createCells() { 221 createCells() {
222 var element = this._element; 222 var element = this._element;
223 element.classList.toggle( 223 element.classList.toggle(
224 'websocket-frame-view-row-error', this._frame.type === WebInspector.Netw orkRequest.WebSocketFrameType.Error); 224 'websocket-frame-view-row-error', this._frame.type === SDK.NetworkReques t.WebSocketFrameType.Error);
225 element.classList.toggle( 225 element.classList.toggle(
226 'websocket-frame-view-row-outcoming', this._frame.type === WebInspector. NetworkRequest.WebSocketFrameType.Send); 226 'websocket-frame-view-row-outcoming', this._frame.type === SDK.NetworkRe quest.WebSocketFrameType.Send);
227 element.classList.toggle('websocket-frame-view-row-opcode', !this._isTextFra me); 227 element.classList.toggle('websocket-frame-view-row-opcode', !this._isTextFra me);
228 super.createCells(); 228 super.createCells();
229 } 229 }
230 230
231 /** 231 /**
232 * @override 232 * @override
233 * @return {number} 233 * @return {number}
234 */ 234 */
235 nodeSelfHeight() { 235 nodeSelfHeight() {
236 return 17; 236 return 17;
237 } 237 }
238 238
239 /** 239 /**
240 * @return {!WebInspector.ContentProvider} 240 * @return {!Common.ContentProvider}
241 */ 241 */
242 contentProvider() { 242 contentProvider() {
243 return WebInspector.StaticContentProvider.fromString( 243 return Common.StaticContentProvider.fromString(
244 this._url, WebInspector.resourceTypes.WebSocket, this._dataText); 244 this._url, Common.resourceTypes.WebSocket, this._dataText);
245 } 245 }
246 }; 246 };
247 247
248 /** 248 /**
249 * @param {!WebInspector.ResourceWebSocketFrameNode} a 249 * @param {!Network.ResourceWebSocketFrameNode} a
250 * @param {!WebInspector.ResourceWebSocketFrameNode} b 250 * @param {!Network.ResourceWebSocketFrameNode} b
251 * @return {number} 251 * @return {number}
252 */ 252 */
253 WebInspector.ResourceWebSocketFrameNodeTimeComparator = function(a, b) { 253 Network.ResourceWebSocketFrameNodeTimeComparator = function(a, b) {
254 return a._frame.time - b._frame.time; 254 return a._frame.time - b._frame.time;
255 }; 255 };
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698