2011-06-22 Dimitri Glazkov <dglazkov@chromium.org>
Reviewed by Kent Tamura.
Move file-choosing and icon-loading management to FileInputType
https://bugs.webkit.org/show_bug.cgi?id=62069
1) Moved the duties of FileChooserClient and FileIconLoaderClient from
RenderFileUploadControl to FileInputType, along with all of the
supporting functions.
2) Moved Icon ownership to FileInputType and exposed accessor on
HTMInputElement to allow RenderFileUploadControl to query current icon.
As a result, RenderFileUploadControl is now completely stateless, which is
neat and clean.
Refactoring, covered by existing tests.
* html/FileInputType.cpp:
(WebCore::FileInputType::handleDOMActivateEvent): Moved logic here from RenderFileUploadControl.
(WebCore::FileInputType::requestIcon): Ditto.
(WebCore::FileInputType::filesChosen): Ditto.
(WebCore::FileInputType::receiveDropForDirectoryUpload): Ditto.
(WebCore::FileInputType::updateRendering): Ditto.
(WebCore::FileInputType::chrome): Ditto.
(WebCore::FileInputType::receiveDroppedFiles): Ditto.
(WebCore::FileInputType::icon): Added.
* html/FileInputType.h:
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::setValueFromRenderer): Updated comment.
(WebCore::HTMLInputElement::receiveDroppedFiles): Added to replace setFileListFromRenderer.
(WebCore::HTMLInputElement::icon): Added.
* html/HTMLInputElement.h:
* html/InputType.cpp:
(WebCore::InputType::receiveDroppedFiles): Added.
(WebCore::InputType::icon): Added.
* html/InputType.h:
* page/DragController.cpp:
(WebCore::DragController::concludeEditDrag): Changed to use HTMLInputElement. Ahh, nice and clean!
* rendering/RenderFileUploadControl.cpp:
(WebCore::RenderFileUploadControl::RenderFileUploadControl): Removed code that is no longer necessary.
(WebCore::RenderFileUploadControl::updateFromElement): Ditto.
(WebCore::RenderFileUploadControl::maxFilenameWidth): Changed to use HTMLInputElement icon accessor.
(WebCore::RenderFileUploadControl::paintObject): Ditto.
* rendering/RenderFileUploadControl.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@89535
268f45cc-cd09-0410-ab3c-
d52691b4dbfc