| Index: third_party/WebKit/Source/devtools/front_end/network/ResourceWebSocketFrameView.js
|
| diff --git a/third_party/WebKit/Source/devtools/front_end/network/ResourceWebSocketFrameView.js b/third_party/WebKit/Source/devtools/front_end/network/ResourceWebSocketFrameView.js
|
| index 25d9bc977822d19f5946dcba18f3c7530f0632b0..af2f2c3897a0c74ed72329cba65af416ced62534 100644
|
| --- a/third_party/WebKit/Source/devtools/front_end/network/ResourceWebSocketFrameView.js
|
| +++ b/third_party/WebKit/Source/devtools/front_end/network/ResourceWebSocketFrameView.js
|
| @@ -47,10 +47,14 @@ WebInspector.ResourceWebSocketFrameView = function(request)
|
|
|
| this._dataGrid.setName("ResourceWebSocketFrameView");
|
| this._dataGrid.addEventListener(WebInspector.DataGrid.Events.SelectedNode, this._onFrameSelected, this);
|
| + this._dataGrid.addEventListener(WebInspector.DataGrid.Events.DeselectedNode, this._onFrameDeselected, this);
|
| this._splitWidget.setMainWidget(this._dataGrid.asWidget());
|
|
|
| var view = new WebInspector.EmptyWidget("Select frame to browse its content.");
|
| this._splitWidget.setSidebarWidget(view);
|
| +
|
| + /** @type {?WebInspector.ResourceWebSocketFrameNode} */
|
| + this._selectedNode = null;
|
| }
|
|
|
| /** @enum {number} */
|
| @@ -116,12 +120,41 @@ WebInspector.ResourceWebSocketFrameView.prototype = {
|
| _onFrameSelected: function(event)
|
| {
|
| var selectedNode = /** @type {!WebInspector.ResourceWebSocketFrameNode} */ (event.target.selectedNode);
|
| + this._currentSelectedNode = selectedNode;
|
| var contentProvider = selectedNode.contentProvider();
|
| - contentProvider.requestContent().then(content => {
|
| - var parsedJSON = content ? WebInspector.JSONView.parseJSON(content) : null;
|
| - var view = parsedJSON ? new WebInspector.JSONView(parsedJSON) : new WebInspector.ResourceSourceFrame(contentProvider);
|
| - this._splitWidget.setSidebarWidget(view);
|
| - });
|
| + contentProvider.requestContent().then(contentHandler.bind(this));
|
| +
|
| + /**
|
| + * @param {(string|null)} content
|
| + * @this {WebInspector.ResourceWebSocketFrameView}
|
| + */
|
| + function contentHandler(content) {
|
| + if (this._currentSelectedNode !== selectedNode)
|
| + return;
|
| + WebInspector.JSONView.parseJSON(content).then(handleJSONData.bind(this));
|
| + }
|
| +
|
| + /**
|
| + * @param {?WebInspector.ParsedJSON} parsedJSON
|
| + * @this {WebInspector.ResourceWebSocketFrameView}
|
| + */
|
| + function handleJSONData(parsedJSON)
|
| + {
|
| + if (this._currentSelectedNode !== selectedNode)
|
| + return;
|
| + if (parsedJSON)
|
| + this._splitWidget.setSidebarWidget(new WebInspector.JSONView(parsedJSON));
|
| + else
|
| + this._splitWidget.setSidebarWidget(new WebInspector.ResourceSourceFrame(contentProvider));
|
| + }
|
| + },
|
| +
|
| + /**
|
| + * @param {!WebInspector.Event} event
|
| + */
|
| + _onFrameDeselected: function(event)
|
| + {
|
| + this._currentSelectedNode = null;
|
| },
|
|
|
| refresh: function()
|
|
|