void ChromeClientImpl::runOpenPanel(LocalFrame* frame, PassRefPtr<FileChooser> fileChooser) { WebViewClient* client = m_webView->client(); if (!client) return; WebFileChooserParams params; params.multiSelect = fileChooser->settings().allowsMultipleFiles; params.directory = fileChooser->settings().allowsDirectoryUpload; params.acceptTypes = fileChooser->settings().acceptTypes(); params.selectedFiles = fileChooser->settings().selectedFiles; if (params.selectedFiles.size() > 0) params.initialValue = params.selectedFiles[0]; #if ENABLE(MEDIA_CAPTURE) params.useMediaCapture = fileChooser->settings().useMediaCapture; #endif WebFileChooserCompletionImpl* chooserCompletion = new WebFileChooserCompletionImpl(fileChooser); if (client->runFileChooser(params, chooserCompletion)) return; // Choosing failed, so do callback with an empty list. chooserCompletion->didChooseFile(WebVector<WebString>()); }
void ChromeClientImpl::runOpenPanel(Frame* frame, PassRefPtr<FileChooser> fileChooser) { WebViewClient* client = m_webView->client(); if (!client) return; WebFileChooserParams params; params.multiSelect = fileChooser->settings().allowsMultipleFiles; #if ENABLE(DIRECTORY_UPLOAD) params.directory = fileChooser->settings().allowsDirectoryUpload; #else params.directory = false; #endif params.acceptMIMETypes = fileChooser->settings().acceptMIMETypes; // FIXME: Remove WebFileChooserParams::acceptTypes. StringBuilder builder; const Vector<String>& acceptTypeList = fileChooser->settings().acceptMIMETypes; for (unsigned i = 0; i < acceptTypeList.size(); ++i) { if (i > 0) builder.append(','); builder.append(acceptTypeList[i]); } params.acceptTypes = builder.toString(); params.selectedFiles = fileChooser->settings().selectedFiles; if (params.selectedFiles.size() > 0) params.initialValue = params.selectedFiles[0]; WebFileChooserCompletionImpl* chooserCompletion = new WebFileChooserCompletionImpl(fileChooser); if (client->runFileChooser(params, chooserCompletion)) return; // Choosing failed, so do callback with an empty list. chooserCompletion->didChooseFile(WebVector<WebString>()); }
void ChromeClientImpl::runOpenPanel(Frame* frame, PassRefPtr<FileChooser> fileChooser) { WebViewClient* client = m_webView->client(); if (!client) return; WebFileChooserParams params; params.multiSelect = fileChooser->allowsMultipleFiles(); #if ENABLE(DIRECTORY_UPLOAD) params.directory = fileChooser->allowsDirectoryUpload(); #else params.directory = false; #endif params.acceptTypes = fileChooser->acceptTypes(); params.selectedFiles = fileChooser->filenames(); if (params.selectedFiles.size() > 0) params.initialValue = params.selectedFiles[0]; WebFileChooserCompletionImpl* chooserCompletion = new WebFileChooserCompletionImpl(fileChooser); if (client->runFileChooser(params, chooserCompletion)) return; // Choosing failed, so do callback with an empty list. chooserCompletion->didChooseFile(WebVector<WebString>()); }
void ChromeClientImpl::openFileChooser(LocalFrame* frame, PassRefPtr<FileChooser> fileChooser) { notifyPopupOpeningObservers(); WebViewClient* client = m_webView->client(); if (!client) return; WebFileChooserParams params; params.multiSelect = fileChooser->settings().allowsMultipleFiles; params.directory = fileChooser->settings().allowsDirectoryUpload; params.acceptTypes = fileChooser->settings().acceptTypes(); params.selectedFiles = fileChooser->settings().selectedFiles; if (params.selectedFiles.size() > 0) params.initialValue = params.selectedFiles[0]; params.useMediaCapture = fileChooser->settings().useMediaCapture; params.needLocalPath = fileChooser->settings().allowsDirectoryUpload; params.requestor = frame->document()->url(); WebFileChooserCompletionImpl* chooserCompletion = new WebFileChooserCompletionImpl(fileChooser); if (client->runFileChooser(params, chooserCompletion)) return; // Choosing failed, so do callback with an empty list. chooserCompletion->didChooseFile(WebVector<WebString>()); }