Add keyboard shortcut for Replay XHR

Bug: chromium:1050021
Change-Id: I5566ae7de3b1b8f3b3ad3184d50f7f4220c2adc1
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/3251579
Reviewed-by: Danil Somsikov <[email protected]>
Reviewed-by: Benedikt Meurer <[email protected]>
Commit-Queue: Benedikt Meurer <[email protected]>
diff --git a/front_end/panels/network/NetworkLogView.ts b/front_end/panels/network/NetworkLogView.ts
index 570059f..60aa8d2 100644
--- a/front_end/panels/network/NetworkLogView.ts
+++ b/front_end/panels/network/NetworkLogView.ts
@@ -958,11 +958,24 @@
           (initiatorLink as HTMLElement).focus();
         }
       }
+
       if (isEnterOrSpaceKey(event)) {
         this.dispatchEventToListeners(Events.RequestActivated, {showPanel: true, takeFocus: true});
         event.consume(true);
       }
     });
+    this.dataGrid.element.addEventListener('keyup', event => {
+      if ((event.key === 'r' || event.key === 'R') && this.dataGrid.selectedNode) {
+        const request = (this.dataGrid.selectedNode as NetworkNode).request();
+        if (!request) {
+          return;
+        }
+
+        if (SDK.NetworkManager.NetworkManager.canReplayRequest(request)) {
+          SDK.NetworkManager.NetworkManager.replayRequest(request);
+        }
+      }
+    });
     this.dataGrid.element.addEventListener('focus', this.onDataGridFocus.bind(this), true);
     this.dataGrid.element.addEventListener('blur', this.onDataGridBlur.bind(this), true);
     return this.dataGrid;