### 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

18.0.4

### What operating system are you using?

Ubuntu

### Operating System Version

Ubuntu 20.0.4

### What arch are you using?

x64

### Last Known Working Electron version

_No response_

### Expected Behavior

File Selection Dialog should show files with the filtered extension, with no need for case match.

### Example:

`*.Foo` files should show up if we set filters for `[{name: 'Foo Files', extensions: ['Foo']}]` or even ``[{name: 'Foo Files', extensions: ['foo']}]`.

### Actual Behavior

File Selection Dialog does not show any files if the Filter contains a mixed case extension string.

### Example:

`*.Foo` files do not show up if we set filters for `[{name: 'Foo Files', extensions: ['Foo']}]` or even ``[{name: 'Foo Files', extensions: ['foo']}]` and any case match setup.

### Testcase Gist URL

https://gist.github.com/047baebf59014c18491c4efdfb75a5f8

### Additional Information

The issue probably come from this [function](https://github.com/electron/electron/blob/main/shell/browser/ui/file_dialog_gtk.cc#L250-L266)  (https://github.com/electron/electron/blob/main/shell/browser/ui/file_dialog_gtk.cc#L250-L266)  that seems to only check for lowercased or uppercased extensions. 

### Example:

`[{name: 'Foo Files', extensions: ['Foo']}]` will only show `*.foo` or `*.FOO` files.

### Gist
In the provided gist, it will ask you to add a `aim-file.Js` file. Please add it. Then run the fiddle. It will open a File Selection Dialog and will not show the `aim-file.Js`. If you change the file type to `All`, that file will show up.
shell/browser/ui/file_dialog_gtk.cc
std::vector<base::FilePath> paths;
    auto* filenames = gtk_file_chooser_get_filenames(GTK_FILE_CHOOSER(dialog_));
    for (auto* iter = filenames; iter != nullptr; iter = iter->next) {
      auto* filename = static_cast<char*>(iter->data);
      paths.emplace_back(filename);
      g_free(filename);
    }
    g_slist_free(filenames);
    return paths;
  }
  CHROMEG_CALLBACK_1(FileChooserDialog,
                     void,
                     OnFileDialogResponse,
                     GtkWidget*,
                     int);
  GtkFileChooser* dialog() const { return dialog_; }
 private:
  void AddFilters(const Filters& filters);
  electron::NativeWindowViews* parent_;
  electron::UnresponsiveSuppressor unresponsive_suppressor_;
  GtkFileChooser* dialog_;
  GtkWidget* preview_;
  Filters filters_;
  std::unique_ptr<gin_helper::Promise<gin_helper::Dictionary>> save_promise_;
  std::unique_ptr<gin_helper::Promise<gin_helper::Dictionary>> open_promise_;
  
  CHROMEG_CALLBACK_0(FileChooserDialog, void, OnUpdatePreview, GtkFileChooser*);
};
void FileChooserDialog::OnFileDialogResponse(GtkWidget* widget, int response) {