diff --git a/shell/browser/ui/file_dialog_win.cc b/shell/browser/ui/file_dialog_win.cc index 5ded77f646..9a9b218644 100644 --- a/shell/browser/ui/file_dialog_win.cc +++ b/shell/browser/ui/file_dialog_win.cc @@ -44,8 +44,7 @@ void ConvertFilters(const Filters& filters, std::vector* buffer, std::vector* filterspec) { if (filters.empty()) { - COMDLG_FILTERSPEC spec = {L"All Files (*.*)", L"*.*"}; - filterspec->push_back(spec); + filterspec->push_back({L"All Files (*.*)", L"*.*"}); return; } @@ -55,11 +54,16 @@ void ConvertFilters(const Filters& filters, buffer->push_back(base::UTF8ToWide(filter.first)); spec.pszName = buffer->back().c_str(); - std::vector extensions(filter.second); - for (std::string& extension : extensions) - extension.insert(0, "*."); - buffer->push_back(base::UTF8ToWide(base::JoinString(extensions, ";"))); - spec.pszSpec = buffer->back().c_str(); + if (filter.second.empty()) { + buffer->push_back(L"*.*"); + spec.pszSpec = buffer->back().c_str(); + } else { + std::vector extensions(filter.second); + for (std::string& extension : extensions) + extension.insert(0, "*."); + buffer->push_back(base::UTF8ToWide(base::JoinString(extensions, ";"))); + spec.pszSpec = buffer->back().c_str(); + } filterspec->push_back(spec); }