tree 379e78f3f0fd57261ae41126e3a6f033ba776fda
parent bf8e503898eaf258268c71226062041bde2ee588
author David Iglesias <ditman@gmail.com> 1691161685 -0700
committer GitHub <noreply@github.com> 1691161685 +0000
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsBcBAABCAAQBQJkzRRVCRBK7hj4Ov3rIwAAXpIIACeYJtdt3tskTl5aAwzb1jMV
 WQzsv4mPkAIpzMFE1RfLb4Fsj85/m+4Sf3cfjqY8+i6WTlsd+umfHuskF29KS039
 ti9QJzkES/vWRaYYz9Zzuun3Xj+5oOzLvvEF9B1TjNKo/QXizOLRZEnnOUi+KtmQ
 UfhmOaMZpWM7PG4+tQlgYAxpivUSzvbo/x5QM16KJFY2CACpiB7a0z9OBJUdMNy4
 POQ4cBgrj09KLWxNS3oaiKoaCAS1138fgGKKDOpynRdWBIf4ysCo+8D/gH636qS6
 P9FYcbIoK2PIz2X1nAeJq4ixn0ppZzS8UszkdOqByXoCVtKyiVlZ48n/4KwnkyI=
 =jnsW
 -----END PGP SIGNATURE-----
 

[image_picker_web] Listens to file input cancel event. (#4453)

## Changes

This PR listens to the `cancel` event from the `input type=file` used by the web implementation of the image_picker plugin, so apps don't end up endlessly awaiting for a file that will never come **in modern browsers** (Chrome 113, Safari 16.4, or newer). _Same API as https://github.com/flutter/packages/pull/3683._

Additionally, this PR:

* Removes all code and tests mentioning `PickedFile`. (Deprecated years ago, and unused since https://github.com/flutter/packages/pull/4285) **(Breaking change)**
* Updates README to mention `XFile` which is the current return type of the package.
* Updates the dependency on `image_picker_platform_interface` to `^2.9.0`.
  * Implements all non-deprecated methods from the interface, and makes deprecated methods use the fresh ones.
  * Updates tests.

### Issues

* Fixes https://github.com/flutter/flutter/issues/92176

### Testing

* Added integration testing coverage for the 'cancel' event.
* Tested manually in Chrome with the example app running on web.