summaryrefslogtreecommitdiffstats
path: root/webkit/glue
diff options
context:
space:
mode:
authorzork@google.com <zork@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2009-01-13 23:54:57 +0000
committerzork@google.com <zork@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2009-01-13 23:54:57 +0000
commitb62d1a8c6795a9feefe4a2e688463c56ce46a6bd (patch)
tree229f2d9bd915151f13642b5841c58603b0819690 /webkit/glue
parent10dd1a30fbaee0315e78d1752cbf1fa8e22c99e4 (diff)
downloadchromium_src-b62d1a8c6795a9feefe4a2e688463c56ce46a6bd.zip
chromium_src-b62d1a8c6795a9feefe4a2e688463c56ce46a6bd.tar.gz
chromium_src-b62d1a8c6795a9feefe4a2e688463c56ce46a6bd.tar.bz2
Updating so that Gears can spawn file selectors when running in the renderer process
Review URL: http://codereview.chromium.org/14907 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@7986 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit/glue')
-rw-r--r--webkit/glue/chrome_client_impl.cc13
-rw-r--r--webkit/glue/webview_delegate.h7
2 files changed, 15 insertions, 5 deletions
diff --git a/webkit/glue/chrome_client_impl.cc b/webkit/glue/chrome_client_impl.cc
index 278134b..d19c28c 100644
--- a/webkit/glue/chrome_client_impl.cc
+++ b/webkit/glue/chrome_client_impl.cc
@@ -42,8 +42,14 @@ class WebFileChooserCallbackImpl : public WebFileChooserCallback {
: file_chooser_(file_chooser) {
}
- void OnFileChoose(const std::wstring& file_name) {
- file_chooser_->chooseFile(webkit_glue::StdWStringToString(file_name));
+ void OnFileChoose(const std::vector<std::wstring>& file_names) {
+ assert(file_names.size() <= 1);
+ if (file_names.empty()) {
+ file_chooser_->chooseFile(webkit_glue::StdWStringToString(L""));
+ } else {
+ file_chooser_->chooseFile(
+ webkit_glue::StdWStringToString(file_names.front().c_str()));
+ }
}
private:
@@ -457,7 +463,8 @@ void ChromeClientImpl::runOpenPanel(WebCore::Frame* frame,
suggestion = webkit_glue::StringToStdWString(fileChooser->filenames()[0]);
WebFileChooserCallbackImpl* chooser = new WebFileChooserCallbackImpl(fileChooser);
- delegate->RunFileChooser(suggestion, chooser);
+ delegate->RunFileChooser(false, std::wstring(), suggestion,
+ std::wstring(), chooser);
}
void ChromeClientImpl::popupOpened(WebCore::FramelessScrollView* popup_view,
diff --git a/webkit/glue/webview_delegate.h b/webkit/glue/webview_delegate.h
index b2fca89..09abc68 100644
--- a/webkit/glue/webview_delegate.h
+++ b/webkit/glue/webview_delegate.h
@@ -90,7 +90,7 @@ class WebFileChooserCallback {
public:
WebFileChooserCallback() {}
virtual ~WebFileChooserCallback() {}
- virtual void OnFileChoose(const std::wstring& file_name) { }
+ virtual void OnFileChoose(const std::vector<std::wstring>& file_names) { }
private:
DISALLOW_EVIL_CONSTRUCTORS(WebFileChooserCallback);
@@ -538,7 +538,10 @@ class WebViewDelegate : virtual public WebWidgetDelegate {
// populated with the given initial_filename string. The WebViewDelegate
// will own the WebFileChooserCallback object and is responsible for
// freeing it.
- virtual void RunFileChooser(const std::wstring& initial_filename,
+ virtual void RunFileChooser(bool multi_select,
+ const std::wstring& title,
+ const std::wstring& initial_filename,
+ const std::wstring& filter,
WebFileChooserCallback* file_chooser) {
delete file_chooser;
}