diff --git a/front_end/network/EventSourceMessagesView.js b/front_end/network/EventSourceMessagesView.js index 9723430740..ac844e6f2a 100644 --- a/front_end/network/EventSourceMessagesView.js +++ b/front_end/network/EventSourceMessagesView.js @@ -7,6 +7,7 @@ import * as Common from '../common/common.js'; import * as DataGrid from '../data_grid/data_grid.js'; +import * as Host from '../host/host.js'; import * as SDK from '../sdk/sdk.js'; import * as UI from '../ui/ui.js'; @@ -33,6 +34,7 @@ export class EventSourceMessagesView extends UI.Widget.VBox { this._dataGrid = new DataGrid.SortableDataGrid.SortableDataGrid({displayName: ls`Event Source`, columns}); this._dataGrid.setStriped(true); this._dataGrid.setStickToBottom(true); + this._dataGrid.setRowContextMenuCallback(this._onRowContextMenu.bind(this)); this._dataGrid.markColumnAsSortedBy('time', DataGrid.DataGrid.Order.Ascending); this._sortItems(); this._dataGrid.addEventListener(DataGrid.DataGrid.Events.SortingChanged, this._sortItems, this); @@ -80,6 +82,17 @@ export class EventSourceMessagesView extends UI.Widget.VBox { } this._dataGrid.sortNodes(comparator, !this._dataGrid.isSortOrderAscending()); } + + /** + * @param {!UI.ContextMenu.ContextMenu} contextMenu + * @param {!DataGrid.DataGrid.DataGridNode} node + */ + _onRowContextMenu(contextMenu, node) { + contextMenu.clipboardSection().appendItem( + Common.UIString.UIString('Copy message'), + Host.InspectorFrontendHost.InspectorFrontendHostInstance.copyText.bind( + Host.InspectorFrontendHost.InspectorFrontendHostInstance, node.data.data)); + } } /**