Closed Bug 1899801 Opened 1 year ago Closed 1 year ago

Keydown not working on screenshots overlay buttons

Categories

(Firefox :: Screenshots, defect, P1)

defect

Tracking

()

VERIFIED FIXED
128 Branch
Tracking Status
firefox-esr115 --- unaffected
firefox126 --- unaffected
firefox127 --- unaffected
firefox128 --- verified

People

(Reporter: niklas, Assigned: niklas, NeedInfo)

References

(Regression)

Details

(Keywords: regression)

Attachments

(1 file)

STR:

  1. Open screenshots
  2. Use the keyboard to focus the crosshairs cancel button
  3. "Enter" or " "(space) on the cancel button

AR:
Nothing happens

ER:
The overlay should close

This also happens on the x, copy and download buttons on the overlay

Set release status flags based on info from the regressing bug 1890721

Pushed by nbaumgardner@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/1cca8bfcc170 Explicitly handle keydown events on screenshots overlay buttons. r=sfoster

Backed out for causing mochitest failures on browser_overlay_keyboard_test.js.

[task 2024-05-31T10:51:11.883Z] 10:51:11     INFO - TEST-PASS | browser/components/screenshots/tests/browser/browser_overlay_keyboard_test.js | The screenshots button was added to the nav bar - "[object XULElement]" == true - 
[task 2024-05-31T10:51:11.884Z] 10:51:11     INFO - Buffered messages finished
[task 2024-05-31T10:51:11.891Z] 10:51:11     INFO - TEST-UNEXPECTED-FAIL | browser/components/screenshots/tests/browser/browser_overlay_keyboard_test.js | A promise chain failed to handle a rejection: can't access property "currentWindowGlobal", browser.browsingContext is null - stack: getActor@resource:///modules/ScreenshotsUtils.sys.mjs:444:17
[task 2024-05-31T10:51:11.891Z] 10:51:11     INFO - downloadScreenshot@resource:///modules/ScreenshotsUtils.sys.mjs:1271:28
[task 2024-05-31T10:51:11.891Z] 10:51:11     INFO - async*downloadScreenshotFromRegion@resource:///modules/ScreenshotsUtils.sys.mjs:1215:16
[task 2024-05-31T10:51:11.891Z] 10:51:11     INFO - async*receiveMessage@resource:///modules/ScreenshotsUtils.sys.mjs:84:32
[task 2024-05-31T10:51:11.891Z] 10:51:11     INFO - JSActor query*requestDownloadScreenshot@resource:///actors/ScreenshotsComponentChild.sys.mjs:186:10
[task 2024-05-31T10:51:11.892Z] 10:51:11     INFO - handleEvent@resource:///actors/ScreenshotsComponentChild.sys.mjs:135:14
[task 2024-05-31T10:51:11.892Z] 10:51:11     INFO - #dispatchEvent@resource:///modules/ScreenshotsOverlayChild.sys.mjs:1115:29
[task 2024-05-31T10:51:11.892Z] 10:51:11     INFO - downloadSelectedRegion@resource:///modules/ScreenshotsOverlayChild.sys.mjs:1180:24
[task 2024-05-31T10:51:11.892Z] 10:51:11     INFO - handleKeyDownOnButton@resource:///modules/ScreenshotsOverlayChild.sys.mjs:1091:14
[task 2024-05-31T10:51:11.892Z] 10:51:11     INFO - selectedKeyDown@resource:///modules/ScreenshotsOverlayChild.sys.mjs:701:14
[task 2024-05-31T10:51:11.892Z] 10:51:11     INFO - handleKeyDown@resource:///modules/ScreenshotsOverlayChild.sys.mjs:528:14
[task 2024-05-31T10:51:11.892Z] 10:51:11     INFO - handleEvent@resource:///modules/ScreenshotsOverlayChild.sys.mjs:347:14
[task 2024-05-31T10:51:11.892Z] 10:51:11     INFO - handleEvent@resource:///actors/ScreenshotsComponentChild.sys.mjs:104:20
[task 2024-05-31T10:51:11.892Z] 10:51:11     INFO - synthesizeKey@chrome://mochikit/content/tests/SimpleTest/EventUtils.js:1707:11
[task 2024-05-31T10:51:11.892Z] 10:51:11     INFO - receiveMessage@resource://testing-common/BrowserTestUtilsChild.sys.mjs:156:25
[task 2024-05-31T10:51:11.892Z] 10:51:11     INFO - JSActor query*sendQuery@resource://testing-common/BrowserTestUtils.sys.mjs:2807:18
[task 2024-05-31T10:51:11.892Z] 10:51:11     INFO - synthesizeKey@resource://testing-common/BrowserTestUtils.sys.mjs:2307:17
[task 2024-05-31T10:51:11.892Z] 10:51:11     INFO - safeSynthesizeKeyEventInContentPage@chrome://mochitests/content/browser/browser/components/screenshots/tests/browser/head.js:1050:26
[task 2024-05-31T10:51:11.892Z] 10:51:11     INFO - get/<@chrome://mochitests/content/browser/browser/components/screenshots/tests/browser/head.js:82:17
[task 2024-05-31T10:51:11.892Z] 10:51:11     INFO - test_clickingButtonsWithKeyDown/<@chrome://mochitests/content/browser/browser/components/screenshots/tests/browser/browser_keyboard_tests.js:583:13
[task 2024-05-31T10:51:11.892Z] 10:51:11     INFO - async*withNewTab@resource://testing-common/BrowserTestUtils.sys.mjs:146:22
[task 2024-05-31T10:51:11.892Z] 10:51:11     INFO - async*test_clickingButtonsWithKeyDown@chrome://mochitests/content/browser/browser/components/screenshots/tests/browser/browser_keyboard_tests.js:485:26
[task 2024-05-31T10:51:11.892Z] 10:51:11     INFO - handleTask@chrome://mochikit/content/browser-test.js:1139:26
[task 2024-05-31T10:51:11.892Z] 10:51:11     INFO - _runTaskBasedTest@chrome://mochikit/content/browser-test.js:1211:18
[task 2024-05-31T10:51:11.893Z] 10:51:11     INFO - async*Tester_execTest@chrome://mochikit/content/browser-test.js:1353:14
[task 2024-05-31T10:51:11.893Z] 10:51:11     INFO - nextTest/<@chrome://mochikit/content/browser-test.js:1128:14
[task 2024-05-31T10:51:11.893Z] 10:51:11     INFO - SimpleTest.waitForFocus/<@chrome://mochikit/content/tests/SimpleTest/SimpleTest.js:1058:13
[task 2024-05-31T10:51:11.893Z] 10:51:11     INFO - Rejection date: Fri May 31 2024 10:51:11 GMT+0000 (Coordinated Universal Time) - false == true - {"filename":"resource://testing-common/PromiseTestUtils.sys.mjs","name":"assertNoUncaughtRejections","sourceId":635,"lineNumber":266,"columnNumber":14,"sourceLine":"","asyncCause":null,"asyncCaller":null,"caller":{"filename":"chrome://mochikit/content/browser-test.js","name":"handleTask","sourceId":601,"lineNumber":1167,"columnNumber":22,"sourceLine":"","asyncCause":null,"asyncCaller":{"filename":"chrome://mochikit/content/browser-test.js","name":"_runTaskBasedTest","sourceId":601,"lineNumber":1182,"columnNumber":18,"sourceLine":"","asyncCause":null,"asyncCaller":null,"caller":{"filename":"chrome://mochikit/content/browser-test.js","name":"Tester_execTest","sourceId":601,"lineNumber":1353,"columnNumber":14,"sourceLine":"","asyncCause":null,"asyncCaller":null,"caller":{"filename":"chrome://mochikit/content/browser-test.js","name":"nextTest/<","sourceId":601,"lineNumber":1128,"columnNumber":14,"sourceLine":"","asyncCause":null,"asyncCaller":null,"caller":{"filename":"chrome://mochikit/content/tests/SimpleTest/SimpleTest.js","name":"SimpleTest.waitForFocus/<","sourceId":626,"lineNumber":1058,"columnNumber":13,"sourceLine":"","asyncCause":null,"asyncCaller":null,"caller":null,"formattedStack":"SimpleTest.waitForFocus/<@chrome://mochikit/content/tests/SimpleTest/SimpleTest.js:1058:13\n","nativeSavedFrame":{}},"formattedStack":"nextTest/<@chrome://mochikit/content/browser-test.js:1128:14\nSimpleTest.waitForFocus/<@chrome://mochikit/content/tests/SimpleTest/SimpleTest.js:1058:13\n","nativeSavedFrame":{}},"formattedStack":"Tester_execTest@chrome://mochikit/content/browser-test.js:1353:14\nnextTest/<@chrome://mochikit/content/browser-test.js:1128:14\nSimpleTest.waitForFocus/<@chrome://mochikit/content/tests/SimpleTest/SimpleTest.js:1058:13\n","nativeSavedFrame":{}},"formattedStack":"async*_runTaskBasedTest@chrome://mochikit/content/browser-test.js:1182:18\nTester_execTest@chrome://mochikit/content/browser-test.js:1353:14\nnextTest/<@chrome://mochikit/content/browser-test.js:1128:14\nSimpleTest.waitForFocus/<@chrome://mochikit/content/tests/SimpleTest/SimpleTest.js:1058:13\n","nativeSavedFrame":{}},"caller":null,"formattedStack":"handleTask@chrome://mochikit/content/browser-test.js:1167:22\nasync*_runTaskBasedTest@chrome://mochikit/content/browser-test.js:1182:18\nTester_execTest@chrome://mochikit/content/browser-test.js:1353:14\nnextTest/<@chrome://mochikit/content/browser-test.js:1128:14\nSimpleTest.waitForFocus/<@chrome://mochikit/content/tests/SimpleTest/SimpleTest.js:1058:13\n","nativeSavedFrame":{}},"formattedStack":"assertNoUncaughtRejections@resource://testing-common/PromiseTestUtils.sys.mjs:266:14\nhandleTask@chrome://mochikit/content/browser-test.js:1167:22\nasync*_runTaskBasedTest@chrome://mochikit/content/browser-test.js:1182:18\nTester_execTest@chrome://mochikit/content/browser-test.js:1353:14\nnextTest/<@chrome://mochikit/content/browser-test.js:1128:14\nSimpleTest.waitForFocus/<@chrome://mochikit/content/tests/SimpleTest/SimpleTest.js:1058:13\n","nativeSavedFrame":{}}
[task 2024-05-31T10:51:11.893Z] 10:51:11     INFO - Stack trace:
[task 2024-05-31T10:51:11.893Z] 10:51:11     INFO - resource://testing-common/PromiseTestUtils.sys.mjs:assertNoUncaughtRejections:266
[task 2024-05-31T10:51:11.893Z] 10:51:11     INFO - chrome://mochikit/content/browser-test.js:handleTask:1167
[task 2024-05-31T10:51:11.893Z] 10:51:11     INFO - chrome://mochikit/content/browser-test.js:_runTaskBasedTest:1182
[task 2024-05-31T10:51:11.893Z] 10:51:11     INFO - chrome://mochikit/content/browser-test.js:Tester_execTest:1353
[task 2024-05-31T10:51:11.893Z] 10:51:11     INFO - chrome://mochikit/content/browser-test.js:nextTest/<:1128
[task 2024-05-31T10:51:11.893Z] 10:51:11     INFO - chrome://mochikit/content/tests/SimpleTest/SimpleTest.js:SimpleTest.waitForFocus/<:1058
[task 2024-05-31T10:51:11.894Z] 10:51:11     INFO - Leaving setup bound 
[task 2024-05-31T10:51:11.894Z] 10:51:11     INFO - Entering test bound test_moveRegionWithKeyboard
[task 2024-05-31T10:51:11.996Z] 10:51:11     INFO - TEST-PASS | browser/components/screenshots/tests/browser/browser_overlay_keyboard_test.js | Got dimensions back from the content - 
Flags: needinfo?(nbaumgardner)
Pushed by nbaumgardner@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/561b320fa5db Explicitly handle keydown events on screenshots overlay buttons. r=sfoster
Status: ASSIGNED → RESOLVED
Closed: 1 year ago
Resolution: --- → FIXED
Target Milestone: --- → 128 Branch

Reproduced the initial issue on Nightly 128.0a1 (Build ID: 20240530213713).

Verified as fixed using Firefox 128.0b2 and the latest Nightly 129.0a1 on macOS 13, Ubuntu 22.04 and Windows 10.

Please note that while verifying, I encountered a situation where Screenshot mode is not exited when pressing the Cancel button. Logged bug 1902683 to cover that scenario.

Status: RESOLVED → VERIFIED
Flags: qe-verify+
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: