[Webkit-unassigned] [Bug 26141] Implement onformchange and onforminput event handlers
bugzilla-daemon at webkit.org
bugzilla-daemon at webkit.org
Thu Jan 13 23:57:42 PST 2011
https://bugs.webkit.org/show_bug.cgi?id=26141
--- Comment #13 from Dai Mikurube <dmikurube at google.com> 2011-01-13 23:57:42 PST ---
(From update of attachment 78643)
View in context: https://bugs.webkit.org/attachment.cgi?id=78643&action=review
>>> LayoutTests/fast/forms/script-tests/formchange-event.js:3
>>> +function sendKey(element, keyName) {
>>
>> You should probably use eventSender here instead.
>
> I like avoiding eventSender in order to make the test workable on browsers.
I decided to use these methods for the reason which Kent-san said. (FYI: I'm using eventSender in forminput-event.js to fire input events.)
>> LayoutTests/fast/forms/script-tests/formchange-event.js:52
>> +shouldBe("result1.innerHTML", '"none"');
>
> You can use shouldBeEqualToString
Thanks. Replaced to shouldBeEqualToString.
>>> Source/WebCore/html/HTMLElement.cpp:828
>>
>> Node::dispatchInputEvents();
>
> Because dispatchEvent() may call JavaScript event handlers, "this" object can be deleted in the event handlers.
Erik> Replaced to Node::dispatchInputEvents();
Kent-san> Modified it by reference to HTMLFormElement::collectUnhandledInvalidControls().
>> Source/WebCore/html/HTMLFormControlElement.cpp:181
>
> Why is this needed? I think you can remove dispatchFormControlInputEvent and simply use dispatchInputEvents?
>
> If you really don't want to do the extra work that HTMLElement::dispatchInputEvents does you could make HTMLFormControlElement override dispatchFormInputs
Changed HTMLFormControlElement::dispatchFormControlInputEvent() just to call HTMLElement::dispatchChangeEvents().
However dispatchFormControlInputEvent() cannot be removed since dispatchInputEvent() and dispatchFormControlInputEvent have difference behaviors in case of non-HTML elements. dispatchInputEvent() fires an "input" event, and dispatchFormControlInputEvent() fires nothing for non-HTML elements.
>> Source/WebCore/html/HTMLFormElement.cpp:595
>
> This should be the "resettable elements" and not the "associated elements"
>
> http://dev.w3.org/html5/spec/Overview.html#broadcast-forminput-events
> http://dev.w3.org/html5/spec/Overview.html#category-reset
> http://dev.w3.org/html5/spec/Overview.html#form-associated-element
Introduced isResettable() into FormAssociatedElement, and checked with it.
>> Source/WebCore/html/HTMLFormElement.cpp:600
>> + if (!formElement->dispatchEvent(Event::create(eventNames().forminputEvent, false, false)))
>
> ditto.
> dispatchEvent() calls JavaScript code. "this" can be deleted and m_associatedElements can be updated.
Modified it by reference to HTMLFormElement::collectUnhandledInvalidControls().
--
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.
More information about the webkit-unassigned
mailing list