### Preflight Checklist

- [X] I have read the [Contributing Guidelines](https://github.com/electron/electron/blob/main/CONTRIBUTING.md) for this project.
- [X] I agree to follow the [Code of Conduct](https://github.com/electron/electron/blob/main/CODE_OF_CONDUCT.md) that this project adheres to.
- [X] I have searched the [issue tracker](https://www.github.com/electron/electron/issues) for a bug report that matches the one I want to file, without success.

### Electron Version

19.0.4

### What operating system are you using?

Ubuntu

### Operating System Version

5.4.0-117-generic #132-Ubuntu SMP Thu Jun 2 00:39:06 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux

### What arch are you using?

x64

### Last Known Working Electron version

_No response_

### Expected Behavior

`dialog.showOpenDialog` filters with `extensions: ['*']` cannot select a file without extension on **Linux** (on Windows it's OK). E.g. on the filesystem I have
```
$ ls
abc
abc.jpg
```

Then I run `dialog.showOpenDialog` with the following filters
```{
  filters: [
    { name: 'JPEG', extensions: ['jpg'] },
    { name: 'All Files', extensions: ['*'] }
  ]
}
```

and when I browse into my directory I want to see files `abc` and `abc.jpg`.

### Actual Behavior

When I browse into my directory I want to see file `abc.jpg` only.

### Testcase Gist URL

https://gist.github.com/8d6d9d0367863ff0841d4662d60cc14d

### Additional Information

_No response_
shell/browser/ui/file_dialog_gtk.cc
std::string pattern("*.");
  for (std::size_t i = 0, n = extension.size(); i < n; i++) {
    char ch = extension[i];
    if (!base::IsAsciiAlpha(ch)) {
      pattern.push_back(ch);
      continue;
    }
    pattern.push_back('[');
    pattern.push_back(base::ToLowerASCII(ch));
    pattern.push_back(base::ToUpperASCII(ch));
    pattern.push_back(']');
  }
  return pattern;
}
class FileChooserDialog {
 public:
  FileChooserDialog(GtkFileChooserAction action, const DialogSettings& settings)
      : parent_(
            static_cast<electron::NativeWindowViews*>(settings.parent_window)),
        filters_(settings.filters) {
    auto label = settings.button_label;
    if (electron::IsElectron_gtkInitialized()) {
      dialog_ = GTK_FILE_CHOOSER(gtk_file_chooser_native_new(
          settings.title.c_str(), NULL, action,
          label.empty() ? nullptr : label.c_str(), nullptr));
    } else {
      const char* confirm_text = gtk_util::GetOkLabel();
      if (!label.empty())
        confirm_text = label.c_str();
      else if (action == GTK_FILE_CHOOSER_ACTION_SAVE)