diff options
author | estade@chromium.org <estade@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-05-20 20:56:26 +0000 |
---|---|---|
committer | estade@chromium.org <estade@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-05-20 20:56:26 +0000 |
commit | 7d1c60592d605052f0ddb09cc8d458dd84e1ab8f (patch) | |
tree | e9deef00a2444fe5b7288c4eb6571233e7003ef2 /chrome/browser | |
parent | 893160d54cb5b2c1c68d3b69ec8ebc9b25b68b82 (diff) | |
download | chromium_src-7d1c60592d605052f0ddb09cc8d458dd84e1ab8f.zip chromium_src-7d1c60592d605052f0ddb09cc8d458dd84e1ab8f.tar.gz chromium_src-7d1c60592d605052f0ddb09cc8d458dd84e1ab8f.tar.bz2 |
Linux: reject empty file filters for file chooser dialogs.
Note that this is temporary in that, in the long run, we should be using mime type filters rather than shell-style globs.
TEST=right click/save as on a link. There should be no "*." filter.
Review URL: http://codereview.chromium.org/113660
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@16533 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser')
-rw-r--r-- | chrome/browser/gtk/dialogs_gtk.cc | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/chrome/browser/gtk/dialogs_gtk.cc b/chrome/browser/gtk/dialogs_gtk.cc index d846d28..637d203 100644 --- a/chrome/browser/gtk/dialogs_gtk.cc +++ b/chrome/browser/gtk/dialogs_gtk.cc @@ -195,13 +195,20 @@ void SelectFileDialogImpl::SelectFile( void SelectFileDialogImpl::AddFilters(GtkFileChooser* chooser) { for (size_t i = 0; i < file_types_.extensions.size(); ++i) { - GtkFileFilter* filter = gtk_file_filter_new(); + GtkFileFilter* filter = NULL; for (size_t j = 0; j < file_types_.extensions[i].size(); ++j) { // TODO(estade): it's probably preferable to use mime types, but we are // passed extensions, so it's much easier to use globs. - gtk_file_filter_add_pattern(filter, - ("*." + file_types_.extensions[i][j]).c_str()); + if (!file_types_.extensions[i][j].empty()) { + if (!filter) + filter = gtk_file_filter_new(); + gtk_file_filter_add_pattern(filter, + ("*." + file_types_.extensions[i][j]).c_str()); + } } + // We didn't find any non-empty extensions to filter on. + if (!filter) + continue; // The description vector may be blank, in which case we are supposed to // use some sort of default description based on the filter. |