diff options
Diffstat (limited to 'Source/WebKit/blackberry/WebCoreSupport/ChromeClientBlackBerry.cpp')
-rw-r--r-- | Source/WebKit/blackberry/WebCoreSupport/ChromeClientBlackBerry.cpp | 28 |
1 files changed, 19 insertions, 9 deletions
diff --git a/Source/WebKit/blackberry/WebCoreSupport/ChromeClientBlackBerry.cpp b/Source/WebKit/blackberry/WebCoreSupport/ChromeClientBlackBerry.cpp index 2b7c8f992..b0dae6097 100644 --- a/Source/WebKit/blackberry/WebCoreSupport/ChromeClientBlackBerry.cpp +++ b/Source/WebKit/blackberry/WebCoreSupport/ChromeClientBlackBerry.cpp @@ -507,26 +507,36 @@ void ChromeClientBlackBerry::exceededDatabaseQuota(Frame* frame, const String& n void ChromeClientBlackBerry::runOpenPanel(Frame*, PassRefPtr<FileChooser> chooser) { SharedArray<WebString> initialFiles; - unsigned int initialFileSize = chooser->settings().selectedFiles.size(); - if (initialFileSize > 0) - initialFiles.reset(new WebString[initialFileSize]); - for (unsigned i = 0; i < initialFileSize; ++i) + unsigned numberOfInitialFiles = chooser->settings().selectedFiles.size(); + if (numberOfInitialFiles > 0) + initialFiles.reset(new WebString[numberOfInitialFiles], numberOfInitialFiles); + for (unsigned i = 0; i < numberOfInitialFiles; ++i) initialFiles[i] = chooser->settings().selectedFiles[i]; + SharedArray<WebString> acceptMIMETypes; + unsigned numberOfTypes = chooser->settings().acceptMIMETypes.size(); + if (numberOfTypes > 0) + acceptMIMETypes.reset(new WebString[numberOfTypes], numberOfTypes); + for (unsigned i = 0; i < numberOfTypes; ++i) + acceptMIMETypes[i] = chooser->settings().acceptMIMETypes[i]; + + WebString capture; +#if ENABLE(MEDIA_CAPTURE) + capture = chooser->settings().capture; +#endif + SharedArray<WebString> chosenFiles; - unsigned int chosenFileSize; { PageGroupLoadDeferrer deferrer(m_webPagePrivate->m_page, true); TimerBase::fireTimersInNestedEventLoop(); - // FIXME: Use chooser->settings().acceptMIMETypes instead of WebString() for the second parameter. - if (!m_webPagePrivate->m_client->chooseFilenames(chooser->settings().allowsMultipleFiles, WebString(), initialFiles, initialFileSize, chosenFiles, chosenFileSize)) + if (!m_webPagePrivate->m_client->chooseFilenames(chooser->settings().allowsMultipleFiles, acceptMIMETypes, initialFiles, capture, chosenFiles)) return; } - Vector<String> files(chosenFileSize); - for (unsigned i = 0; i < chosenFileSize; ++i) + Vector<String> files(chosenFiles.length()); + for (unsigned i = 0; i < chosenFiles.length(); ++i) files[i] = chosenFiles[i]; chooser->chooseFiles(files); } |