user pref 'permissions.default.shortcuts' screws up backspace and del keys
Categories
(Core :: DOM: UI Events & Focus Handling, defect, P2)
Tracking
()
People
(Reporter: daniel.schaaaf, Assigned: enndeakin)
References
Details
Attachments
(1 file, 2 obsolete files)
3.54 KB,
patch
|
Felipe
:
review+
|
Details | Diff | Splinter Review |
User Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:59.0) Gecko/20100101 Firefox/59.0 Build ID: 20180310025718 Steps to reproduce: Change user_pref("permissions.default.shortcuts", 0); to user_pref("permissions.default.shortcuts", 2); Issue was also reported here: https://community.atlassian.com/t5/Confluence-questions/Unable-to-Copy-Using-CTRL-C-Hotkeys-on-Page-View-FF-59b6/qaq-p/719341 Actual results: Backspace and del keys stopped working in text fields. Instead of deleting text characters, Firefox executed the assigned hotkey function (default go back for backspace). Expected results: Backspace and del keys should delete text characters in text fields (e.g. search input field on a webpage).
Comment 1•7 years ago
|
||
User Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:59.0) Gecko/20100101 Firefox/59.0 Firefox: 59.0.1, Build ID: 20180315233128 I have managed to reproduce this issue on latest Firefox (59.0.1) release and latest Nightly (61.0a1) build on Windows 7 x64 and Mac 10.12. It seems that the pref was introduce by bug 380637, but I am not sure what exactly does this pref. @Neil can you please take a look at this issue?
Assignee | ||
Comment 2•7 years ago
|
||
Is there a specific page where this issue is noticed?
Comment 3•7 years ago
|
||
Yes, I have managed to reproduce the issue on google.com. Just type a text in the Google search bar and try to use the "Backspace" and "Delete" button. When using the "Backspace" button you are redirected to the previously page and it seems that the "Delete" button is not working only if the text is selected. Please let me know if you need more information.
Reporter | ||
Comment 4•7 years ago
|
||
Setting "permissions.default.shortcuts" to a value of 2 disables shortcuts. Since any value =! 0 or 1 should do the trick, I tried 3. Interestingly, a value of 3 does not screw up backspace and delete.
Comment 5•7 years ago
|
||
Changing the site permission through Page Info > Permissions > Override Keyboard Shortcuts > Block causes the same issue (tested only on Windows 7): * Delete does nothing when text is not selected (Shift+Delete works) * Backspace goes Back, which normally only occurs when focus is outside of editable areas
Updated•6 years ago
|
Comment 6•6 years ago
|
||
All of that: * `permissions.default.shortcuts = 2` breaking delete and backspace keys * `permissions.default.shortcuts = 3` not breaking them * blocking it for a page via `Page Info > Permissions > Override Keyboard Shortcuts > Block` ... is also reproductible on Windows 10 and openSUSE 64bit.
Assignee | ||
Comment 7•6 years ago
|
||
The simplest approach is to just make the backspace key not a reserved key. A more complete approach might be to just treat all defined shortcuts that don't have modifiers specified not be reserved keys.
Assignee | ||
Comment 8•6 years ago
|
||
Assignee | ||
Updated•6 years ago
|
Updated•6 years ago
|
Pushed by neil@mozilla.com: https://hg.mozilla.org/integration/mozilla-inbound/rev/648648a60190 make the backspace key a non-reserved key so that it isn't blocked by shortcut permissions, r=felipe
Comment 10•6 years ago
|
||
Backed out 2 changesets (bug 1513332, bug 1445942) for browser-chrome failures in browser/base/content/test/permissions/browser_reservedkey.js Log: https://treeherder.mozilla.org/logviewer.html#/jobs?job_id=217538812&repo=mozilla-inbound&lineNumber=2569 13:28:34 INFO - Entering test bound test_reserved_shortcuts 13:28:34 INFO - Buffered messages logged at 13:27:06 13:28:34 INFO - Console message: [JavaScript Error: "The character encoding of the HTML document was not declared. The document will render with garbled text in some browser configurations if the document contains characters from outside the US-ASCII range. The character encoding of the page must be declared in the document or in the transfer protocol." {file: "data:text/html,<body onload='document.body.firstElementChild.focus();'><div onkeydown='event.preventDefault();' tabindex=0>Test</div></body>" line: 0}] 13:28:34 INFO - TEST-PASS | browser/base/content/test/permissions/browser_reservedkey.js | reserved='true' with preference off - 13:28:34 INFO - TEST-PASS | browser/base/content/test/permissions/browser_reservedkey.js | reserved='false' with preference off - 13:28:34 INFO - TEST-PASS | browser/base/content/test/permissions/browser_reservedkey.js | default reserved with preference off - 13:28:34 INFO - TEST-PASS | browser/base/content/test/permissions/browser_reservedkey.js | reserved='true' with preference on - 13:28:34 INFO - TEST-PASS | browser/base/content/test/permissions/browser_reservedkey.js | reserved='false' with preference on - 13:28:34 INFO - TEST-PASS | browser/base/content/test/permissions/browser_reservedkey.js | default reserved with preference on - 13:28:34 INFO - Leaving test bound test_reserved_shortcuts 13:28:34 INFO - Entering test bound test_backspace 13:28:34 INFO - Buffered messages logged at 13:27:07 13:28:34 INFO - Console message: [JavaScript Error: "SyntaxError: expected expression, got '}'" {file: "data:text/html,<body onbeforeunload='document.getElementById('field').value = 'failed'; event.preventDefault();'><input id='field' value='something' autofocus></body>" line: 2 column: 0 source: "}"}] 13:28:34 INFO - Console message: [JavaScript Error: "The character encoding of the HTML document was not declared. The document will render with garbled text in some browser configurations if the document contains characters from outside the US-ASCII range. The character encoding of the page must be declared in the document or in the transfer protocol." {file: "data:text/html,<body onbeforeunload='document.getElementById('field').value = 'failed'; event.preventDefault();'><input id='field' value='something' autofocus></body>" line: 0}] 13:28:34 INFO - Buffered messages finished 13:28:34 INFO - TEST-UNEXPECTED-FAIL | browser/base/content/test/permissions/browser_reservedkey.js | backspace not prevented - Got something, expected omething 13:28:34 INFO - Stack trace: 13:28:34 INFO - chrome://mochikit/content/browser-test.js:test_is:1312 13:28:34 INFO - chrome://mochitests/content/browser/browser/base/content/test/permissions/browser_reservedkey.js:test_backspace:141 13:28:34 INFO - chrome://mochikit/content/browser-test.js:Tester_execTest/<:1102 13:28:34 INFO - chrome://mochikit/content/browser-test.js:Tester_execTest:1093 13:28:34 INFO - chrome://mochikit/content/browser-test.js:nextTest/<:991 13:28:34 INFO - chrome://mochikit/content/tests/SimpleTest/SimpleTest.js:SimpleTest.waitForFocus/waitForFocusInner/focusedOrLoaded/<:803 13:28:34 INFO - Leaving test bound test_backspace 13:28:34 INFO - GECKO(851) | [Child 853, Main Thread] WARNING: SendNotifyIMEFocus got rejected.: file /builds/worker/workspace/build/src/widget/PuppetWidget.cpp, line 779 13:28:34 INFO - GECKO(851) | MEMORY STAT | vsize 4423MB | residentFast 333MB | heapAllocated 105MB 13:28:34 INFO - TEST-OK | browser/base/content/test/permissions/browser_reservedkey.js | took 1347ms 13:28:34 INFO - GECKO(851) | ++DOCSHELL 0x124dc9000 == 3 [pid = 853] [id = {939edc05-d69f-9d4f-bc8c-6806a1b2ad45}] 13:28:34 INFO - GECKO(851) | ++DOMWINDOW == 9 (0x125e05800) [pid = 853] [serial = 17] [outer = 0x0] 13:28:34 INFO - GECKO(851) | ++DOMWINDOW == 10 (0x125e09c00) [pid = 853] [serial = 18] [outer = 0x125e05800] 13:28:34 INFO - GECKO(851) | [Child 853, Main Thread] WARNING: 'NS_FAILED(rv)', file /builds/worker/workspace/build/src/dom/base/nsContentUtils.cpp, line 8205 13:28:34 INFO - GECKO(851) | ++DOMWINDOW == 11 (0x125e10c00) [pid = 853] [serial = 19] [outer = 0x125e05800] 13:28:34 INFO - GECKO(851) | [Child 853, Main Thread] WARNING: 'NS_FAILED(rv)', file /builds/worker/workspace/build/src/dom/base/nsContentUtils.cpp, line 8205 13:28:34 INFO - checking window state Push with failures: https://treeherder.mozilla.org/#/jobs?repo=mozilla-inbound&group_state=expanded&revision=648648a60190278663379270879e053c9d767f70 Backout: https://hg.mozilla.org/integration/mozilla-inbound/rev/303797fd37227647995d902c220177df611c58e3
Assignee | ||
Updated•6 years ago
|
Assignee | ||
Comment 11•6 years ago
|
||
Updated•6 years ago
|
Comment 12•6 years ago
|
||
Pushed by neil@mozilla.com: https://hg.mozilla.org/integration/mozilla-inbound/rev/72da18aff712 make the backspace key a non-reserved key so that it isn't blocked by shortcut permissions, r=felipe
Comment 13•6 years ago
|
||
bugherder |
Updated•6 years ago
|
Comment 14•6 years ago
|
||
I can confirm that the patch pushed by Neil Deakin at https://hg.mozilla.org/mozilla-central/rev/72da18aff712 ("make the backspace key a non-reserved key...") is working for the backspace key in 66.0b7
However, the problem with the delete key remains: it deletes text when selected, however it does not have any effect when no text is selected (but text exists to the right of the cursor).
So this is only partly resolved.
Assignee | ||
Comment 15•6 years ago
|
||
That should be just adding the same annotation for the delete key, a couple of lines earlier.
Updated•6 years ago
|
Comment 16•6 years ago
|
||
I'm a little bit confused: should the delete key still be blocked from working, or has that been fixed? In my Firefox 66.0.2 (64-bit) Win 10, the backspace key now works properly, but delete still does nothing to text (except on selected text, as before); I've observed this on a site with "override keyboard shortcuts" blocked locally (global allow). Should I open a new bug for the delete key?
Comment 18•5 years ago
|
||
(In reply to Neil Deakin from comment #15)
That should be just adding the same annotation for the delete key, a couple of lines earlier.
This sounds reasonable to me. After having upgraded to FF 68 today either the annotation is still missing or there is another issue with the "Del"-key. In my installation, it is still not working.
Description
•