void FileInputType::handleDOMActivateEvent(Event* event) { if (element()->disabled()) return; if (!ScriptController::processingUserGesture()) return; if (Chrome* chrome = this->chrome()) { FileChooserSettings settings; HTMLInputElement* input = element(); #if ENABLE(DIRECTORY_UPLOAD) settings.allowsDirectoryUpload = input->fastHasAttribute(webkitdirectoryAttr); settings.allowsMultipleFiles = settings.allowsDirectoryUpload || input->fastHasAttribute(multipleAttr); #else settings.allowsMultipleFiles = input->fastHasAttribute(multipleAttr); #endif settings.acceptMIMETypes = input->acceptMIMETypes(); settings.acceptFileExtensions = input->acceptFileExtensions(); settings.selectedFiles = m_fileList->paths(); #if ENABLE(MEDIA_CAPTURE) settings.capture = input->capture(); #endif chrome->runOpenPanel(input->document()->frame(), newFileChooser(settings)); } event->setDefaultHandled(); }