summaryrefslogtreecommitdiff
path: root/Source/WebKit/blackberry/WebCoreSupport/ChromeClientBlackBerry.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebKit/blackberry/WebCoreSupport/ChromeClientBlackBerry.cpp')
-rw-r--r--Source/WebKit/blackberry/WebCoreSupport/ChromeClientBlackBerry.cpp28
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);
}