RESOLVED WONTFIX Bug 31234
Make tests http/tests/misc/isindex-with-no-form-base-href.html and isindex-with-no-form.html work using DOM keyboard events
https://bugs.webkit.org/show_bug.cgi?id=31234
Summary Make tests http/tests/misc/isindex-with-no-form-base-href.html and isindex-wi...
Daniel Bates
Reported 2009-11-07 19:36:02 PST
Following up from bug #30491, we should make the test cases: http/tests/misc/isindex-with-no-form-base-href.html http/tests/misc/isindex-with-no-form.html work without using DRT's EventSender. Instead, we should rewrite these tests to use DOM keyboard events.
Attachments
Example (2.13 KB, text/html)
2009-11-14 21:52 PST, Daniel Bates
no flags
Daniel Bates
Comment 1 2009-11-14 21:52:12 PST
Created attachment 43241 [details] Example Example. Tries to programmatically fire a keypress DOM KeyboardEvent at an HTMLInputElement with keyIdentifier = "Enter" to submit the form (that is, to simulate what equivalent action when the user gives the input focus and then presses the Return/Enter key on the keyboard)
Daniel Bates
Comment 2 2009-11-14 21:52:55 PST
Using a debugger to trace the execution of DOM KeyboardEvents, we need to fix bug #16735 in order to fix this bug. Running the attachment Example <https://bugs.webkit.org/attachment.cgi?id=43241>, we see that the call flow is as follows (*): WebCore::jsNodePrototypeFunctionDispatchEvent->EventTarget::dispatchEvent->Node::dispatchEvent->Node::dispatchGenericEvent->HTMLInputElement::defaultEventHandler By line 1412 of HTMLInputElement.cpp <http://trac.webkit.org/browser/trunk/WebCore/html/HTMLInputElement.cpp?rev=50996#L1412>, we call KeyboardEvent::charCode(). Notice, this KeyboardEvent was generated programmatically by JavaScript (as opposed to a physical key press). Hence, this KeyboardEvent has no associated PlatformKeyboardEvent (i.e. KeyboardEvent::m_keyEvent == null). And by line 138 of KeyboardEvent.cpp <http://trac.webkit.org/browser/trunk/WebCore/dom/KeyboardEvent.cpp?rev=38094#L138> method KeyboardEvent::charCode returns 0 if !KeyboardEvent::m_keyEvent. So, for this example, KeyboardEvent::charCode always returns 0. Therefore, we cannot resolve this bug until we resolve bug #16735. For completeness, before executing (*), the DOM keyboard event is first instantiated via the following call flow: WebCore::jsDocumentPrototypeFunctionCreateEvent->Document::createEvent->KeyboardEvent::create->KeyboardEvent::KeyboardEvent() Note, specifically the constructor KeyboardEvent::KeyboardEvent() is called. Hence, m_keyEvent := 0. Then, the DOM keyboard event is initialized via the call flow: WebCore::jsKeyboardEventPrototypeFunctionInitKeyboardEvent->KeyboardEvent::initKeyboardEvent
Ahmad Saleem
Comment 3 2023-06-03 21:31:16 PDT
'isindex' is removed and now historical. https://github.com/WebKit/WebKit/commit/c92f223d57abd60e7bc682985a103744f3760672 WPT test showing it as historical - http://wpt.live/html/semantics/forms/historical.html and both of these tests are now removed (in above commit). So marking this as 'RESOLVED WONTFIX'.
Note You need to log in before you can comment on or make changes to this bug.