From 33405a2f10d166c225ade2034eb4b15578201dc6 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 1 Jul 2026 13:00:40 +0000 Subject: [PATCH 1/3] Initial plan From 9f19b4378f2212ad119bf5f04b32c0f145fd7a51 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 1 Jul 2026 13:02:16 +0000 Subject: [PATCH 2/3] fix(redirection): ignore repeated Shift keydown for next-version shortcut Fixes: https://github.com/microsoft/playwright/issues/41550 --- static/js/redirection.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/static/js/redirection.js b/static/js/redirection.js index e87faabfa1c..aca8805b1fa 100644 --- a/static/js/redirection.js +++ b/static/js/redirection.js @@ -107,6 +107,10 @@ window.addEventListener("load", () => { const kGoToNextToken = ['Shift', 'Shift', 'Shift', 'Shift', 'Shift']; let keyPressState = 0; document.addEventListener('keydown', (e) => { + if (e.repeat) { + keyPressState = 0; + return; + } if (kGoToNextToken[keyPressState] === e.key) { keyPressState++; if (keyPressState === kGoToNextToken.length) { From 2257997f4e1d8ceebf3190933c1f305dc5f32811 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 1 Jul 2026 13:07:39 +0000 Subject: [PATCH 3/3] fix(redirection): early-return on repeated Shift keydown without resetting Fixes: https://github.com/microsoft/playwright/issues/41550 --- static/js/redirection.js | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/static/js/redirection.js b/static/js/redirection.js index aca8805b1fa..ec2c6fe1ee4 100644 --- a/static/js/redirection.js +++ b/static/js/redirection.js @@ -107,10 +107,8 @@ window.addEventListener("load", () => { const kGoToNextToken = ['Shift', 'Shift', 'Shift', 'Shift', 'Shift']; let keyPressState = 0; document.addEventListener('keydown', (e) => { - if (e.repeat) { - keyPressState = 0; + if (e.repeat) return; - } if (kGoToNextToken[keyPressState] === e.key) { keyPressState++; if (keyPressState === kGoToNextToken.length) {