Bug 58265

Summary: WebKit2: Cannot use Ctrl-Delete as a custom keyboard shortcut
Product: WebKit Reporter: Alexey Proskuryakov <ap>
Component: WebKit2Assignee: Alexey Proskuryakov <ap>
Status: RESOLVED FIXED    
Severity: Normal CC: enrica, evan
Priority: P2 Keywords: InRadar
Version: 528+ (Nightly build)   
Hardware: Mac   
OS: OS X 10.6   
Attachments:
Description Flags
proposed fix mjs: review+

Description Alexey Proskuryakov 2011-04-11 13:48:43 PDT
WebPage::performDefaultBehaviorForKeyEvent() doesn't check for modifiers, so it consumes too many variations with the Delete key.

This used to be fine in WebKit1, because the logic was in -[FrameView keyDown:], which was only executed after performKeyEquivalent traveled the responder chain - but in WebKit2, the web process doesn't even know if it's handling a keyDown or a performKeyEquivalent.

<rdar://problem/9221468>
Comment 1 Alexey Proskuryakov 2011-04-11 14:04:00 PDT
Created attachment 89083 [details]
proposed fix
Comment 2 Maciej Stachowiak 2011-04-11 15:11:29 PDT
Comment on attachment 89083 [details]
proposed fix

r=me

Is there any way to make a test for this?
Comment 3 Alexey Proskuryakov 2011-04-11 15:50:12 PDT
Committed <http://trac.webkit.org/changeset/83522>.

We can't test how UI and web processes interact, since WebKitTestRunner only uses injected bundle API.
Comment 4 Evan Martin 2011-04-28 12:07:38 PDT
FYI, this seems to have regressed the behavior in Linux Chrome that pressing backspace should not go back.  I'm still looking into why; I don't understand this code too well.  I am not upset because we deserved it, since didn't have tests covering this behavior, just thought you might wanna know.
Comment 5 Alexey Proskuryakov 2011-04-28 14:14:13 PDT
Well yes, this code implements the behavior of going back on backspace in a cross platform manner. I didn't know there was any port that didn't want it, and I'm surprised.