Skip to content
  • timothy@apple.com's avatar
    WebCore: Expose a function to set the value of an input element on behalf of the user. · 7157c6d7
    timothy@apple.com authored
    This function will dispatch the change event so the page is notified when autofill
    happens. Also dispatch a change event when a select element is changed by autofill.
    
    <rdar://problem/6760590> Would like a way to detect a login form AutoFill from JavaScript
    
    Reviewed by Darin Adler.
    
    * WebCore.xcodeproj/project.pbxproj: Added the DOMHTMLInputElementPrivate.h header.
    * bindings/objc/DOMHTML.mm:
    (-[DOMHTMLSelectElement _activateItemAtIndex:]): Call setSelectedIndexByUser instead so
    a change event is fired. This method is called by Safari autofill.
    * dom/Document.cpp:
    (WebCore::Document::setFocusedNode): Use dispatchFormControlChangeEvent instead
    of dispatching the change event directly to be consistent.
    * html/HTMLFormControlElement.cpp:
    (WebCore::HTMLInputElement::setValueForUser): Added. Calls setValue with the sendChangeEvent
    (WebCore::HTMLInputElement::setValue): Added the optional sendChangeEvent argument. Mimics setChecked.
    * html/HTMLInputElement.h:
    * html/HTMLInputElement.idl: Added setValueForUser for non-JS languages.
    * html/InputElement.h: Added setValueForUser.
    
    WebKit/mac: Migrate DOMHTMLInputElementPrivate.h as a private header.
    
    Reviewed by Darin Adler.
    
    * MigrateHeaders.make:
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@51602 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    7157c6d7